0
在我的htaccess中,我为我的搜索页面重写规则以创建干净的URL;RewriteRule阻止编码
原始地址:
http://www.example.com/index.php?keyword=apple
重写规则:
RewriteRule ^keyword/([A-Za-z0-9-]+)/?$ index.php?keyword=$1
清洁网址:
http://www.example.com/keyword/apple
,除非我输入外文字符完美的作品。例如,如果我写
http://www.example.com/keyword/değişmek
我得到了404.这是有道理的,因为字母Â和ş是外来字母。他们必须被编码。但如果我在原始URL中输入关键字,
http://www.example.com/index.php?keyword=değişmek
它的工作原理。我得到了结果。此外,我试图编码输入搜索用户输入搜索干净的URL
var url = encodeURIComponent($("#search-input").val());
window.location.href = "http://www.example.com/keyword/"+ url ;
console.log(url);
没有工作。我得到了404。我检查了console.log,并且用户输入被编码了。因此,我认为重写导致编码问题。所以我试图添加一些与编码相关的标志。
RewriteRule ^keyword/([A-Za-z0-9-]+)/?$ index.php?keyword=$1 [NE]
RewriteRule ^keyword/([A-Za-z0-9-]+)/?$ index.php?keyword=$1 [B]
RewriteRule ^keyword/([A-Za-z0-9-]+)/?$ index.php?keyword=$1 [NE,B]
没有工作。任何建议?