2014-03-06 47 views
1

有沒有人有任何想法,爲什麼我在Apache2配置重寫規則不起作用?Apache2 - 重寫規則不起作用(遠程地址)

<VirtualHost *:80> 
RewriteEngine On 
RewriteCond %{REMOTE_ADDR} ^192\.168\.123\.121$ 
RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.107$ 
RewriteCond %{REMOTE_ADDR} ^10\.17\. 
RewriteRule ^(.*)$ /var/www/html/$1 

    DocumentRoot "/var/www/html/phones" 
    ServerName 127.0.0.1 
</VirtualHost> 

我想要做的是,如果從IP地址的客戶端192.168.123.121,192.168.1.107或從網絡10.17.xx前來Web服務器端口80,他們將被重定向到不同的路徑(/ VAR/www/html /)然後所有其他IP地址(/ var/www/html/phones /)?

回答

0

據我所知,有一個重寫規則的多重寫條件由邏輯AND組合。因此,我會嘗試「或下一條件」(OR)選項:

RewriteCond %{REMOTE_ADDR} ^192\.168\.123\.121$ [OR] 
RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.107$ [OR] 
RewriteCond %{REMOTE_ADDR} ^10\.17\. 

BTW:也許它有助於激活日誌記錄了。您可以使用類似

阿帕奇< 2.4

RewriteEngine On 
RewriteLog "/var/log/httpd/rewrite.log" 
RewriteLogLevel 3 

阿帕奇> = 2.4(詳見有關logging in apache 2.4

LogLevel alert rewrite:trace6 

在後一種情況下,你應該管的通過「fgrep」查找日誌文件以查找有趣的日誌條目。例如:

tail -f /var/log/httpd/error_log | fgrep '[rewrite:' 

你應該在生產環境中使用這種記錄的。

+0

很好,這個工程([OR]),謝謝! – user3387554