Mar*_*ing 5 javascript php cakephp bookmarklet url-rewriting
我想创建一个用于添加书签的书签。因此,您只需单击Bookmark this Page书签中的JavaScript 代码段,您就会被重定向到该页面。
这是我当前的书签:
"javascript: location.href='http://…/bookmarks/add/'+encodeURIComponent(document.URL);"
Run Code Online (Sandbox Code Playgroud)
当我在 Bookmarklet 页面上单击它时,这会给我一个这样的 URL:
http://localhost/~mu/cakemarks/bookmarks/add/http%3A%2F%2Flocalhost%2F~mu%2Fcakemarks%2Fpages%2Fbookmarklet
Run Code Online (Sandbox Code Playgroud)
但是服务器不喜欢这样:
The requested URL /~mu/cakemarks/bookmarks/add/http://localhost/~mu/cakemarks/pages/bookmarklet was not found on this server.
Run Code Online (Sandbox Code Playgroud)
这给出了所需的结果,但对我的用例来说毫无用处:
http://localhost/~mu/cakemarks/bookmarks/add/test-string
Run Code Online (Sandbox Code Playgroud)
正在进行 CakePHP 典型的 mod_rewrite,它应该将最后一部分转换为我的BookmarksController::add($url = null)操作的参数。
我究竟做错了什么?
根据 poplitea 的回答,我翻译了令人不安的字符,/并:手动翻译,这样我就没有任何特殊功能。
function esc(s) {\n s=s.replace(/\\//g, \'__slash__\');\n s=s.replace(/:/g, \'__colon__\');\n s=s.replace(/#/g, \'__hash__\');\n return s;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n在 PHP 中,我可以轻松地将其转换回来。
\n\n$url = str_replace("__slash__", "/", $url);\n$url = str_replace("__colon__", ":", $url);\n$url = str_replace("__hash__", "#", $url);\nRun Code Online (Sandbox Code Playgroud)\n\n我不确定像?这样的字符会发生什么,所以 \xe2\x80\xa6
| 归档时间: |
|
| 查看次数: |
2468 次 |
| 最近记录: |