從查詢字符串中刪除IP地址我有一個網址,像這樣:使用.htaccess的
我試圖刪除從URL IP = 169%2E59%的查詢字符串以下查詢變量2E201%2E137,同時保持字符串的其餘部分不變。該變量是一個IP地址,可能每次都是不同的IP地址,但始終是一個IP。出於安全原因,如果在查詢字符串中找到IP地址,我使用的其中一個CMS系統將會出錯。不幸的是,我需要從支付網關獲取數據,網關無法關閉正在發送的IP地址。如果我要捕獲發送到我的CMS的數據,那麼我需要使用HTACCESS刪除或替換查詢中的IP。
RewriteEngine On
RewriteCond %{THE_REQUEST} ^GET\ /.*\ HTTP/ [NC]
RewriteCond %{QUERY_STRING} IP= [NC]
RewriteCond %{QUERY_STRING} (.*)(IP=[0-9]{1,3}%252E[0-9]{1,3}%252E[0-9]{1,3}%252E[0-9]{1,3})(.*) [NC]
RewriteRule .* %{REQUEST_URI}?%1%3 [R=301,L]
所以,我開始寫這樣的東西,但老實說,我吮吸mod_rewrite和正則表達式。
我不在乎它是否設置爲IP = 123,或者只是刪除,但它不能被格式化爲IP。請讓我知道如果你能幫助!
我不知道爲什麼這有兩個票,downvoted因爲REQUEST_URI不包括QUERY_STRING。概念驗證... RewriteRule ^(。*)$ http://www.google.co.uk/search?q=%{REQUEST_URI} [R = 302] – 2010-08-12 07:05:21
我也downvoted,因爲測試模式輸入到'RewriteRule'將不會包含查詢字符串部分,所以這會使OP遠離正確的答案。此外,'%{REQUEST_URI}'不包含'%{QUERY_STRING}',如果不存在'%{REQUEST_URI'',mod_rewrite'將自動附加查詢字符串到請求中,在替換中被指定。 – 2010-08-12 07:57:19
好吧,我認爲'REQUEST_URI'包含了查詢字符串,因爲自動追加的東西,因爲PHP中的$ _SERVER ['REQUEST_URI']'包含查詢字符串。 @Tim感謝你解釋。我刪除了我之前的評論,並提出了Cags的回答。 – qmega 2010-08-12 08:04:49