2013-05-30 69 views
1

如何在不適用的Apache重寫規則的,如果請求是不正常的域名,但不是在服務器IP請勿重寫規則?阿帕奇:如果請求的主機是一個IP地址

目前的規定(使域只是沒有www訪問):

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^domain.com$ [NC] 
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301] 

我想已經添加RewriteCond %{HTTP_HOST} !^123.321.123.321$ [OR]但它似乎沒有工作。

回答

1

如果你有訪問服務器的配置文件,這個工作對我來說(在httpd.conf中設置它):

<Location /> 
RewriteEngine on 
RewriteBase/

RewriteCond %{HTTP_HOST} !^123.123.123.123$ 
RewriteRule (.*) http://www.mainsite.example.com/ [L] 
</Location> 

如果我訪問的IP地址的網站,它沒有改寫。如果我使用(例如)http://mainsite.example.com,地址被改寫(以包括www.)。該[L](在httpd.conf中使用時)有停止(而不是現在正在試圖改寫新地址)改寫處理。

在那裏你還可以有

ServerName www.mainsite.example.com 
ServerAlias mainsite.example.com 
ServerAlias www.mainsite 
ServerAlias mainsite 
ServerAlias 123.123.123.123 

,使人們可以使用任何這些地址的(第2和第3的別名讓內部用戶刪除域),而不是改寫強制或添加www