2013-05-29 71 views
2

我注意到最終請求的URL增加了%
例如。 http://sample.com/countries/usa%如何從apache重寫中的url結尾中刪除%

我們有一個Apache重寫規則的轉換服務器上的正確形成請求所需的頁面

RewriteRule ^countries/([a-zA-Z]+)$ /index.php?c=$2 

然而,當用戶(或機器人呢?)添加%符號到底強制出現400錯誤。 谷歌的網站管理員工具發現這些類型的錯誤增加,我不知道如何刪除它。我無法在PHP中執行此操作,因爲錯誤發生在Apache級別。

任何幫助將不勝感激。

回答

0

我會在你的.htaccess文件的開頭添加這樣的:

RewriteRule ^(.*)\%$ $1 [R=301,L] 

這會導致(因爲R = 301)一永久重定向的頁面沒有「%」

+0

感謝您的建議。這不適合我。放置在序列中的哪個位置是否重要?我不是apache專家,但是在重寫之後的L中,是不是告訴它停止尋找更多規則? – user2431427

+0

@ user2431427你應該把它作爲第一條規則。如果有人以添加%訪問您的網站,則會採用此RewriteRule。它會導致重定向,所以這必須是最後一條規則。 重定向後,您的.htaccess將被再次解析。 – Henridv

+0

@ user2431427我忘了逃避%符號。 (在%之前添加\)嘗試編輯的規則。 – Henridv

相關問題