所以我想在我的网站上创建一个搜索,我需要对一些文本进行编码,以便它对URL友好。但是,如果我用“<”搜索任何内容符号我得到HTTP错误403(访问被禁止),因为“<”没有被编码。
这是我正在使用的代码:
var search = $("#txtHomeSearch").val();
if(search != ""){
var urlSearch = encodeURIComponent(search);
window.location.href = "/search&s=" + urlSearch;
}
工作网址示例: http://website.com/search&s=helloword
已损坏网址的示例: http://website.com/search&s=<
问题可能出在我的.htaccess文件中,其中包含:
RewriteEngine on
RewriteRule ^([^.*]+)$ index.php?page=$1 [L]
ErrorDocument 404 /errorPages/404.php
答案 0 :(得分:0)
这里有一个简单的实用程序:http://www.the-art-of-web.com/javascript/escape用于验证各种Javascript转义函数的操作。根据ECMA标准,并使用该工具验证,“<”应该通过encodeURIComponent()函数正确转义。
它可能是“<”以外的字符吗?造成这个问题? encodeURIComponent未命中的字符有各种补救措施。一个是此处和其他地方列出的url_encode函数:javascript window.location do I need to escape?
答案 1 :(得分:0)
尝试使用[B]
标记转义后退引用。
RewriteEngine on
RewriteRule ^([^.*]+)$ index.php?page=$1 [B,L]
ErrorDocument 404 /errorPages/404.php