301 редирект c www на без www и наоборот

Это самое используемое правило редиректа в SEO. Оно включено по-умолчанию в файл htaccess многих CMS.

Редирект c www на без www

Общий случай — когда не надо указывать домен.
Очень удобно когда у вас несколько доменов указывают на один сайт и вы не хотите редиректов на главное зеркало.
Или если вы разрабатываете CMS и хотите чтобы у ваших пользователей не было забот со вписыванием домена в .htaccess при каждой установке системы.

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

Здесь переменная %{HTTP_HOST} содержит имя домена.
Если оно начинается с www. — правило начинает обрабатываться. Вырезается домен без www в первой строке и приклеивается к текущему пути во второй.

Частный случай — здесь следует поменять домен.
Вместо example.com подставляем свой домен.

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

Действует так же, только домен не вычисляется динамически, а вписан вручную.

Редирект c домена без www на www

Общий случай — когда не надо указывать домен.

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

Частный случай — здесь следует поменять домен.
Вместо example.com подставляем свой домен.

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

 

17 февраля 2016