2011-05-17 59 views
2

我想重定向一個IP到我的網站的另一種觀點,例如,我想從IP X訪問者看到
www.xxx.com?_DEBUG=1
而所有其他訪問者看到正常www.xxx.com, 我將如何在Apache配置文件中執行此操作,使用了哪些指令?的Apache HTTP重寫/重定向基於IP

回答

2

這裏是做什麼你想重寫配置的例子 - 把這個虛擬主機內的www.xxx.com您的服務器上:

RewriteCond %{REMOTE_ADDR} 1.2.3.4 
RewriteCond %{QUERY_STRING} !_DEBUG=1 
#RewriteRule ^/(.*)$ /$1?_DEBUG=1 [QSA,R,L] 
RewriteRule ^/(.*)$ /$1?_DEBUG=1 [QSA,L] 

有兩點要注意:

  • 更改1.2.3.4到任何你需要的IP已經重新編寫
  • 第二RewriteCond阻止的URL包括_DEBUG=1被再次
  • 重寫
  • 有兩個版本的實際RewriteRule;第一個版本(註釋掉)實際上執行重定向。如果您確實希望HTTP客戶端向服務器提交第二個請求(包括_DEBUG=1參數),請使用此參數。缺點是,如果你將GET和POST數據結合起來,這種方法將不起作用。
  • RewriteRule的第二個版本是我推薦你使用的......它不執行重定向。相反,它只是在處理請求之前將_DEBUG=1參數附加到Apache內部的HTTP請求中。
+0

我該如何處理多個ips(以及ips範圍?) – user678070 2011-05-17 05:44:53

+0

@ user678070'1.2.3.4'可以是一個模式(例如1.2.3。*)。 – 2011-05-17 06:05:59

+0

這不適合我,網址沒有得到重寫,它是否適合你? – user678070 2011-05-17 07:37:43