2013-02-11 57 views
0

有人試圖在我的網站一些不好的東西,我累了阻止他使用的IP年代。所以我想阻止他一起執行代碼並將任何此類嘗試重定向到本地服務器。對於我用下面的條件,我現在.htaccess:創建通配符任意數量的鏈接htaccess的阻止

RewriteCond %{QUERY_STRING} ^id=http://213.246.61.125:2082/index.html$ [NC] RewriteRule page.php http://127.0.0.1/index.php? [NS,S,L]

,東西是自本index.html的託管,以及許多不同的IP地址嘗試此。所以我想製作一個通配符,以便不管index.html之前的IP如何,嘗試它的IP總是被重定向到他的本地服務器。 我不知道如何做到這一點。我不能像在其他地方使用IP通配符(34.5.*.*)因爲這是一個鏈接。所以,我想我必須使用類似:

RewriteCond %{QUERY_STRING} ^id=http://([0-9]).([0-9]).([0-9]).([0-9]):2082/index.html$ [NC] RewriteRule page.php http://127.0.0.1/index.php? [NS,S,L]

但是,上面是不對的,但我不知道如何調整它的數字任意組合。也許有人可以幫忙?

回答

0

你應該因爲你想匹配一個或多個字符的字符[0-9]後加號範圍。還請注意,

  • 您的正則表達式中的點應以反斜槓引用。否則它們會匹配任何字符。
  • 您的RewriteCond中的括號是不必要的。
  • NSS標誌在你的RewriteRule可能是不必要的。

我會嘗試以下方法:

RewriteCond %{QUERY_STRING} ^id=http://[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:2082/index\.html$ [NC] 
RewriteRule page\.php http://127.0.0.1/index.php [L] 
+0

感謝您的答覆! 我用你上面的例子,但是我決定增加一個。*匹配的.html,因爲我注意到他們結束了他們企圖用一個問號後,任何東西。 所以,這是我使用的語法: '的RewriteCond%{QUERY_STRING}^ID = HTTP:// ... [0-9] + \ [0-9] + \ [0-9] + \ [0 -9] +:2082 /指數\ html的* $ [NC] 重寫規則頁\ .PHP http://127.0.0.1/index.php [L]' 現在用'HTTP任何請求:// * 。*。*。*:2082/index.html?'或'http://*.*.*.*:2082/index.html'被重定向到本地服務器。 我覺得我很好去這樣,再次感謝! – Foxhound 2013-02-12 09:48:48