2012-05-17 61 views
2

我正在尋找一種方法來我所有的舊域名重定向到一個新的領域,多個域名重定向與htaccess的重寫規則

看來他們是在基層重定向,但如果說到子類別或燙髮鏈接,根本沒有重定向。

Options +FollowSymLinks 
    RewriteEngine on 

    RewriteCond %{HTTP_HOST} (www\.)?mydomain1\.com$ [NC] 
    RewriteCond %{HTTP_HOST} (www\.)?mydomain2\.com$ [NC] 
    RewriteCond %{HTTP_HOST} (www\.)?mydomain3\.com$ [NC] 
    RewriteCond %{HTTP_HOST} (www\.)?mydomain4\.com$ [NC] 
    RewriteCond %{HTTP_HOST} (www\.)?mydomain5\.com$ [NC] 
    RewriteCond %{HTTP_HOST} (www\.)?mydomain6\.com$ [NC] 

    RewriteRule ^(.*) http://www.mydomain7.com/$1 [QSA,L,R=301] 

基層重定向是罰款:mydomain1.com/graph.php => mydomain7.com

但即使在這一水平不能重定向到同一頁面

,更重要的是燙髮鏈接:

mydomain1.com/users/13/James =>無重定向

回答

8

乾淨的解決方案將是,以重定向是不屬於任何域www.mydomain7.com

RewriteCond %{HTTP_HOST} !^www\.mydomain7\.com$ [NC] 
RewriteRule ^(.*) http://www.mydomain7.com/$1 [L,R=301] 
+0

完美,這是真棒! –

2

所有的RewriteCond默認AND組合在一起,因此您的規則將無法工作,因爲%{HTTP_HOST}值不能在同一時間所有的域。

要麼使用否定的建議由戈或改寫這樣的代碼:

RewriteCond %{HTTP_HOST} ^(www\.)?(mydomain1|mydomain2|mydomain3|mydomain4|mydomain5|mydomain6)\.com$ [NC] 
RewriteRule^http://www.mydomain7.com%{REQUEST_URI} [L,R=301]