2012-05-17 3 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

Cleanest решения было бы перенаправить домен, который не 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] 
Смежные вопросы