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]
沒有工作。任何建議?