Настройка редиректа с www на без www.

Одной из главных задач при продвижении сайта является наличие страниц-дублей. Т.е. одна и та же страница может существовать по 2 и более адресам. Это обычно связано с особенностями архитектуры сайта: формирование страниц с перемешанными параметрами, дубли ЧПУ и не ЧПУ страниц, или же наличие дублей с www и без www.
В последнем случае нужно сделать следующее:

  • Определить какие адреса продвигать, с www или без.
  • Если хостинг сайта позволяет, настроить 301 редирект с www на без www (или наоборот).
  • Указать в последней строке файла robots.txt основное зеркало с помощью директивы Host: domen.ru.
  • Указать основное зеркало в сервисе Яндекс вебмастер.
  • Если хостинг сайта не позволяет настройку редиректов (например бесплатный хостинг narod.ru), нужно заменить всю относительную адресацию сайта на абсолютную.

Теперь непосредственно примеры кода редиректа в файле .htaccess.

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

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

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

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


Естественно не забудьте изменить название домена и доменную зону на ваши, при настройке 301 редиректа. Код ответа сервера, для нескольких страниц, можно определить этой программой.


Не редка ситуация, когда на сайте встречаются дубли страниц с символом "слэш" на конце и без него. Для приведения всех страниц сайта к единому виду можно воспользоваться следующими кодами.

Редирект, удаляющий слэш:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]

Редирект добавляющий слэш:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]