Редирект домена с «www» на домен без «www» и наоборот

2011-02-01

Поскольку для поисковиков домен, начинающийся с «www», и тот же самый домен, но без «www» — это два абсолютно разных адреса сайта, и соответственно — всех его страниц, то, лучше заранее определится нужен ли вам этот префикс или нет и придерживаться одного варианта написания.

Дело в том, что если этого не сделать, то поисковики могут ошибочно считать одну и ту же страницу сайта, как две абсолютно разные, и расценить это как попытку дублирования контента (что не очень хорошо), либо разделять «силу» (значимость) этих страниц.

В общем, как же это сделать:
нужно прописать соответствующие строки в файле .htaccess, который лежит в корне сайта.

Добавляем «www»:
Редирект с домена без «www» на домен с «www»:

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

либо

Убираем «www»:
Редирект с домена с «www» на домен без «www»:

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

Домена для примера «my-site.com», необходимо заменить на ваш адрес сайта.



6 комментариев на «Редирект домена с «www» на домен без «www» и наоборот»

  1. казпортал:

    Спастбо! Исправил.

  2. Стрит:

    Большое спасибо, получилось без проблем.

  3. Виталий:

    Добрый день!
    Добавил код отображения с «WWW» и вот какая штука случилась: при попытке захода на http://newbistech.ru сайт действительно перебрасывает на http://www.newbistech.ru, но при попытки, к примеру, зайти на http://newbistech.ru/seo-rus.html, сайт переплавляется на http://www.newbistech.ru/index.php.

    П.С. /index.php в данный момент убрал следующим кодом в .htaccess:

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
    RewriteRule ^index\.php$ http://www.newbistech.ru/ [R=301,L]

    Но проблема осталась: теряется информативная часть ссылки.

  4. admin:

    Такое ощуещение, что вместо $1 в выражении
    RewriteRule (.*) http://www.my-site.com/$1 [R=301,L]
    стоит «index.php»… или что-то в этом роде
    Точно не пропущено (.*) ?

  5. Виталий:

    Код был полностью скопирован с вашего сайта, за небольшим изменением. Я давно уже столкиваюсь с этой проблемой, но до сих пор решение данной проблемы не нашел. Практически все сайты на CMS Joomla грешат этими дублями. Кстати полный мануальчик по htaccess случаем не находили?

  6. admin:

    Официальная документация по Apache Module mod_rewrite есть конечно же: http://httpd.apache.org/docs/current/mod/mod_rewrite.html
    Вот на русском еще кратко нашлось: http://www.seoblog.com.ua/2008/11/04/kratkoe-rukovodstvo-po-htaccess-and-mod_rewrite/
    Но мне кажется, что у Вас какая-то тривиальная проблема типа опечатки или конфликта правил… возможно можно было б чисто экспериментальным путем определить.

Добавить комментарий