2013-09-20 4 views
1

Я хочу изменить субдомен моего сайта и хотел бы сделать RewriteRules я использую для 301 пользователя более простым, так как в настоящее время у меня есть несколько правил для покрытия различных случайностей..htaccess 301 перенаправить один поддомен на другой, для нескольких TLD

Есть ли способ, что одно правило, я могу сделать следующее:

subold.domain.com -> subnew.domain.com 
subold.domain.co.uk -> subnew.domain.co.uk 
subold.domain.local -> subnew.domain.local 
subold-staging.domain.com -> subnew-staging.domain.com 
subold-staging.domain.co.uk -> subnew-staging.domain.co.uk 
subold-staging.domain.local -> subnew-staging.domain.local 

Так в основном, мне нужно, чтобы обнаружить присутствие subold в хозяине, изменить это subnew и перенаправить на этот новый поддомен , сохраняя любой TLD, к которому пользователь пытался получить доступ.

В минуту, мои правила таковы:

RewriteCond %{HTTP_HOST} ^subold.domain.local [NC] 
RewriteRule ^(.*)$ http://subnew.domain.local/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^subold-staging.domain.local [NC] 
RewriteRule ^(.*)$ http://subnew-staging.domain.local/$1 [L,R=301] 

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

RewriteCond %{HTTP_HOST} ^subold-staging.domain.com [NC] 
RewriteRule ^(.*)$ http://subnew-staging.domain.com/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^subold.domain.co.uk [NC] 
RewriteRule ^(.*)$ http://subnew.domain.co.uk/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^subold-staging.domain.co.uk [NC] 
RewriteRule ^(.*)$ http://subnew-staging.domain.co.uk/$1 [L,R=301] 

ответ

2

Предполагая, что есть только разница subold vs subnew в вашей реальной доменных имен.

Вы можете иметь только одно правило так:

RewriteCond %{HTTP_HOST} ^subold\.(.+)$ [NC] 
RewriteRule^http://subnew.%1%{REQUEST_URI} [L,R=301] 
Смежные вопросы