2013-12-09 108 views
1

我使用.htaccess從URI刪除斜線:​​PHP htaccess的URL編碼/解碼刪除尾隨斜線

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)/$ $1 [R=301,L] 

該網站是建立與Codeigniter,有三種語言,其中俄羅斯就是其中之一,即在URI中使用西里爾字符。我使用urlencode生成路由,並使用urldecode通過URI從數據庫中找到正確的頁面。

刪除尾部的斜線適用於英語和德語,但是當我嘗試添加尾部斜槓到使用西里爾字符的URI時,我得到了404頁。刪除/後的URI似乎是正確的,但我不明白爲什麼我得到404,該URL與輸入沒有結尾斜槓相同。

+0

您需要使用rawurldecode和rawurlencode - 檢查[PHP documentacion](http://www.php.net/manual/en/function.rawurldecode.php ) – Sasha

+0

謝謝您的建議,在'anubhava'回答之前嘗試過,但沒有解決問題。 – Dovis

回答

0

使用NE標誌不編碼:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+?)/$ $1 [R=301,L,NE] 
+0

謝謝你的快速回答!有效。 – Dovis

+0

不客氣,很高興它解決了。 – anubhava