2009-09-08 36 views
2

我正在研究一種方法來按IP過濾特定頁面,並將它們重定向到其他頁面。mod_Rewrite:按IP過濾特定頁面並將它們重定向

下面的代碼沒有正常工作。

RewriteCond %{REMOTE_ADDR} ^/192.168.10.* 
RewriteCond %{REQUEST_URI} ^/support 
RewriteRule ^/.* http://www.yahoo.com/gone [R,NE] 

一旦鏈路http://example.com/support被訪問,他們是在192.168.10。*塊,它必須去yahoo.com示例頁面。

但是,就像我說的。它什麼都沒做。任何想法爲什麼它不能正常工作?

+0

的RewriteCond%{REMOTE_ADDR}^* 192.168.10
試試這個 – yoda 2009-09-08 02:39:43

回答

4

作爲yoda在評論中說,不要把/在ip地址前面。此外,該模式中的.應爲\.,因爲這是perl兼容的正則表達式。你也可以添加一個[NC],沒有大小寫(敏感),請求uri匹配。最後,您可以將第二個條件與RewriteRule合併。一起:

RewriteCond %{REMOTE_ADDR} ^192\.168\.10\..* 
RewriteRule ^/support http://www.yahoo.com/gone [R,NE,NC] 
+0

謝謝!如果我想要一個特定的IP,會這樣嗎? RewriteCond%{REMOTE_ADDR}^192 \ .168 \ .10 \ .148 * 我應該保留星號(*)嗎? – 2009-09-09 05:39:59

+0

最後沒有asterix - 這也匹配192.168.10.14(asterix表示前面的'8'的零個或多個匹配)。最好做^ 192 \ .168 \ .10 \ .148 $($表示錨定到行尾)。 – 2009-09-09 06:10:09

+1

對於一個固定的IP地址,你根本不需要正則表達式,只需要'= 192.168.10.148'。 – 2016-01-13 17:53:05

相關問題