Как сделать редирект на сайте с WWW на без WWW

Я думаю любой, кто занимался сайтами сталкивался с подобными вопросами. И тут нет ничего сложного. Существует куча подробных инструкцию, как сделать правильно 301 редирект. Так же есть всякие справки на хостингах и готовые скрипты, которые всё сделают за вас. Обычно всё делает за считанные минуты и никаких проблем не возникает. Но сегодня у меня вылез один небольшой нюанс из-за которого я потратил часа два чтобы сделать этот чертов редирект. Поэтому я решил записать это, чтобы просто не забыть.

301 редирект с WWW на без WWW через htaccess

Самый простой и банальный способ — это использовать файлик .htaccess, который обычно лежит в корне сайта. Если у Вас нет этого файлика, нужно его создать. А потом просто добавить туда вот такой код:

<IfModule mod_rewrite.c>

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]

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

</IfModule>

Это самый простой способ, но вариантов куча, а если внимательно прочитаете инструкцию для чего нужны эти параметры и команды, то у вас появится ещё больше вариантов которые вы сами сможете сделать. Есть ещё варианты сделать это через веб-сервер. У Appache и NGINX тоже есть дополнительные параметры, которые позволяют это сделать.

В большинстве случаев этих строчек в .htaccess вполне хватит и можно забыть про этот вопрос. Это будет работать и с Битрикс сайтами и WordPress. Только вот если у вас домен не делегирован на DNS Yandex.

Домен делегирован на сервера Yandex

И при этом управление DNS записями у вас идёт через админку Яндекса, то одной лишь записи A будет не достаточно, чтобы работали редиректы.

Для того чтобы заработал редирект с www, и вообще заработал этот поддомен www нужно обязательно сделать ещё одну запись A  в настройках DNS.

Настроить нужно примерно так, как в таблице ниже.

Хост Тип записи Значение записи Приоритет TTL
@ A 173.71.32.216 180
www A 173.71.32.216 180

Если честно я впервые столкнулся, что нужно обязательно делать этот поддомен, как отдельный хост. Обычно хватает только одной первой строчки. Но пока я его не добавил вручную, мои редиректы никак не хотели работать. Видимо это какие-то особенности работы самой админки DNS у Яндекса.

 

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *