301 редирект с www на без www и с *.ru на *.com htaccess

Рейтинг: 0Ответов: 1Опубликовано: 18.02.2015

Подскажите, пожалуйста, как лучше написать правило в htaccess для 301 редиректа, чтобы был 1 редирект на site.com, вместо 2 последовательных, при запросе адресов формата: www.site.ru, www.site.com, site.ru?

Ответы

▲ 2Принят

Если сайты на разных хостингах или в разных директориях

# Этот файл для site.com

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

# Этот файл для site.ru
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.ru$ [NC]
RewriteRule ^(.*)$ http://%2.com/$1 [R=301,L]

Если сайты в одной директории

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} (^(www\.)?(site\.ru)$)|^www.site.com$ [NC]
RewriteRule ^(.*)$ http://site.com/$1 [R=301,L]

или еще так (без привязки к домену):

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)\.(ru|com)$ [NC]
RewriteRule ^(.*)$ http://%1.com/$1 [R=301,L]

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