我遇到過類似的問題,例如this one,並在mod_rewrite tutorials上找到類似的說明。在.htaccess中刪除查詢字符串中的特殊字符
我已經決定,我需要沿着
RewriteRule ^(.*)<(.*)$ /$1$2 [L,R=301]
RewriteRule ^(.*)>(.*)$ /$1$2 [L,R=301]
這適用於http://domain.com/<>
線的東西,但它確實不工作http://domain.com?a=<>
我還添加以下,在我試圖從查詢字符串中刪除這些字符:
RewriteCond %{QUERY_STRING} ^(.*)<(.*)$
RewriteRule ^(.*)$ /$1?%1%2 [L,R=301]
RewriteCond %{QUERY_STRING} ^(.*)>(.*)$
RewriteRule ^(.*)$ /$1?%1%2 [L,R=301]
這沒有ch任何東西。我也嘗試在正則表達式中嘗試轉義<和>(即^(.*)\<(.*)$
)。
,我試圖達到的最終結果是有
http://domain.com/<whatever>
轉成http://domain.com/whatever
,並
http://domain.com/a=<whatever>&b=whatever
轉成http://domain.com/a=whatever&b=whatever
我敢發誓該編碼發生_after_的的.htaccess被考慮在內。很高興知道這不是在RewriteCond上的情況(或者它只是與查詢字符串?) – jperezov 2014-10-17 15:04:48
是的,我相信它只是與查詢字符串的情況下。 – anubhava 2014-10-17 15:06:59
完美答案!今天學到了關於查詢字符串編碼時序的新內容。謝謝! – Concept211 2017-06-22 09:55:16