Переадресация на новый домен. Настройка услуги «Перенаправление домена

Последнее обновление Ноябрь 26th, 2018

Время чтения: 2 минуты

301 редирект (301 Moved Permanently) — это перенаправление пользователя с одной страницы (url) на другую.

Зачем нужен 301 редирект

  • передача ссылочного веса
  • правильное избавление от старых страниц
  • сохранение позиций (полное или частичное) при смене урлов
  • избавление от дублей внутри сайта (если такое есть)
  • переезд сайта на новый домен или протокол HTTPS
  • склейка доменов

Как сделать 301 редирект с помощью файла.htaccess?

Примеры будем рассматривать на сайте вида site.ru

Склейка домена с www с вариантом без

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

Настраиваем редирект с http://www.site.ru на site.ru. Здесь главное зеркало сайта это http://site.ru

RewriteCond %{HTTP_HOST} ^www\.(.*)$

RewriteRule ^(.*)$ http://%1/$1

301 редирект при переезде на HTTPS

Поисковые системы в последние годы обозначили тренд на безопасность и рекомендуют всем вебмастерам переводить сайты на защищенный протокол https

RewriteCond %{HTTPS} !=on

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1

Если нужно сделать наоборот:

RewriteCond %{HTTPS} «on»

RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI}

Стандартная переадресация с одной статической страницы на другую

Часто бывает, что на сайте какие-либо страницы устаревают, становятся неактуальными или просто вебмастеру необходимо привести урл страницы к ЧПУ виду.

Например, нужно настроить 301 редирект со страницы http://www.site.ru/page1/ на страницу http://www.site.ru/prodvizhenie-saytov/

RewriteCond %{REQUEST_URI} ^/page1/ $

RewriteRule ^.*$http://www.site.ru/prodvizhenie-saytov/ ?

301-редирект с домена на домен

Иногда бывают ситуации, когда необходимо настроить редиректы с одного домена на другой. Например, у вас был молодой, не трастовый домен, а со временем появился откуда-то прокачанный, трастовый (купили может). Или владельцу сайта надоело старое название домена и резко захотелось его поменять на другое.

Для полной передачи веса с одного домена на другой одних редиректов будет не достаточно, но об этом не в этой статье.

RewriteCond %{HTTP_HOST} ^old-site\.ru$
RewriteRule ^(.*)$ http://www.newsite.ru/$1

Если ваш домен находится в зоне РФ

RewriteCond %{HTTP_HOST} ^xn-…\.xn--p1ai$
RewriteRule ^(.*)$ http://www.site.ru/$1

Переадресация на папки со слешем в конце /

Иногда на сайтах встречаются дубли страниц вида http://www.site.ru/prodvizhenie-saytov/ и http://www.site.ru/prodvizhenie-saytov

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..{1,10}$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.site.ru/$1/

Перенаправление с индексной страницы php (index.php) на саму папку (корень)

Иногда у сайтов может появляться «технический мусор» из-за особенностей админки или каких-либо других причин. Например, главная страница сайта бывает часто доступна по адресу вида http://www.site.ru/index.php и может присутствовать в индексе поисковых систем, мешая ранжированию главной страницы в поисковой выдаче.

RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.site.ru/

Для всех индексных страниц на сайте:

RewriteRule ^(.*)index\.php$ http://www.site.ru/$1

301 редирект с поддомена на основной домен

RewriteCond %{HTTP_HOST} ^test.site.ru$

RewriteRule ^(.*)$ http://site.ru%{REQUEST_URI}

Услуга «Перенаправление домена» позволяет настроить правила и перенаправлять посетителя, обратившегося к доменному имени, на указанный вами интернет-адрес. Услуга поддерживает работу с любыми доменами. .

В этой статье мы расскажем о настройках для работы с услугой.

Настройка домена

Услуга может работать только в том случае, если ваш домен делегирован. Для делегирования домена необходимы DNS-серверы, которые могли бы сообщить пользователям сети Интернет информацию о вашем домене (зоне). Таких серверов должно быть два или более.

В услугу «Перенаправление домена» уже включена поддержка DNS . Если услуга заказывается на тот же договор, что и домен, то при заказе настройки производятся автоматически.

Также вы можете самостоятельно указать DNS-серверы в зависимости от уровня домена, для которого заказана услуга перенаправления:

ns3-fwl2.сайт
ns4-fwl2.сайт
ns8-fwl2.сайт

ns3-fwl3.сайт
ns4-fwl3.сайт
ns8-fwl3.сайт

ns3-fwl4.сайт
ns4-fwl4.сайт
ns8-fwl4.сайт

ns3-fwl5.сайт
ns4-fwl5.сайт
ns8-fwl5.сайт

Записи в файл зоны

Если вы используете DNS-сервера, включенные в услугу «Перенаправление домена», то необходимые записи вносятся автоматически.

При использовании своих DNS-серверов нужно внести в файл зоны домена на первичном DNS-сервере (primary) записи A. В рамках одной услуги перенаправления для самого домена и любого из его поддоменов необходимо указывать один и тот же IP-адрес.

В зависимости от уровня домена, для которого заказана услуга перенаправления, записи A должны быть следующими:

  • для домена второго уровня, вида web-forward.ru :

    web-forward.ru. A 109.70.27.4

  • для домена третьего уровня, вида test.web-forward.ru :

    test.web-forward.ru. A 109.70.27.5

  • для домена четвертого уровня, вида forum.eng.web-forward.ru :

    forum.eng.web-forward.ru. A 109.70.27.6

  • для домена пятого уровня, вида www.forum.eng.web-forward.ru :

    www.forum.eng.web-forward.ru. A 109.70.27.7

Настройка услуги «Перенаправление домена»

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

Внести изменения в настройки услуги вы можете в Разделе для клиентов Услуги Просмотр и изменение данных .

Для каждого правила перенаправления можно указать следующие параметры:

1. Имя поддомена, для которого настраивается правило

Необходимо указать поддомен , с которого будет осуществлено перенаправление. Можно указывать:

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

2. Адрес перенаправления

URL страницы, на которую автоматически будет перенаправлен посетитель.

3. Способ перенаправления

Вы можете выбрать один из следующих способов перенаправления:

  • Временное или постоянное перенаправление

Временное перенаправление (код HTTP ответа «302 Moved Temporarily»). Код ответа HTTP 302 сообщает клиентским приложениям (в том числе поисковым системам), что сайт перемещен временно. Устанавливается по умолчанию.

Постоянное перенаправление (код HTTP ответа «301 Moved Permanently»). Код ответа HTTP 301 говорит клиентским приложениям (в том числе поисковым системам), что сайт перемещен навсегда.

В обоих случаях посетитель автоматически переходит на URL той страницы, на которую было осуществлено перенаправление. Выбор способа перенаправления (301, 302) на практике имеет значение только для поисковых систем.

  • Маскировка адреса во фрейме

При таком способе перенаправления веб-страница будет находиться внутри фрейма. При всех переходах по ссылкам внутри фрейма в адресной строке браузера посетители будут видеть доменное имя, с которого была осуществлена переадресация. В качестве заголовка (title) страницы будет отображаться текст, указанный вами в настройках правила перенаправления.

Если вы выбрали маскировку адреса во фрейме, то следует учитывать, что:

  • при установке ссылок внутри вашей веб-страницы на другие ресурсы, в теге ссылки необходимо указать target=_top . В противном случае чужая веб-страница также будет открыта внутри вашего фрейма, и посетитель будет видеть в окошке URL ваше доменное имя. Пример правильного написания ссылки для этого случая: RU-CENTER
  • истинный адрес веб-страницы, на которую осуществляется перенаправление, хотя и не отображается в строке URL, может быть легко вычислен любым посетителем.

4. Опция «С сохранением пути» .

При попытке обратиться к странице, размещенной на домене, для которого составляется правило, перенаправление произойдет на адрес перенаправления, к которому будет добавлен путь до этой страницы..web-forward.ru, то при обращении к странице dns.web-forward..

Редирект 301 или 301 Permanent Redirect — это правило, которое автоматически переадресовывает пользователя на другой адрес страницы. С его помощью вы можете склеить старые страницы с новыми или перенести сайт на другой домен, убрать многие дубли с сайта и многое другое. Крайне полезная вещь — поэтому нужно научиться делать его правильно!

Так же при 301 редиректе происходит склейка тИЦ (читаем ) и PR — т.е. вы можете сохранить старое значение на новом адресе. Вы можете нисколько не потерять в глазах поисковых систем. Давайте перейдем от теории к практике.

Как настроить 301 редирект в htaccess

Файл под названием.htaccess находится в главной категории вашего сайта. Это служебный файл, в котором мы будем указывать правила склейки. Открываем файл блокнотом (рекомендую notepad++ , чтобы не было проблем с кодировкой). Не забывайте, что это один из важных пунктов в .

Общий шаблон для.htaccess, которым мы будем пользоваться:

Options +FollowSymLinks RewriteEngine On #Здесь указываем правила

Все правила записываются в виде:

RewriteCond [Сравнение] [Условие] [Флаги] RewriteCond [Сравнение] [Условие] [Флаги] RewriteRule [Шаблон] [Подстановка] [Флаги]

Теперь непосредственно займемся переадресацией и разберем конкретные примеры.

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

Примеры использования 301 редиректа

Редирект с index.php на главную

Чтобы настроить его вам нужно прописать в вашем файле следующий код, который будет перенаправлять посетителей с адреса site.ru/index.php на site.ru:

RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP RewriteRule ^index\.php$ http://site.ru/

Если вам так же нужно сделать переадресацию с index.html, то просто в коде выше замените .php на .html

Склеиваем алиасы сайта

Если у вас несколько доменов и вы хотите все их перенаправлять на основной сайт, то используем:

RewriteCond %{HTTP_HOST} ^vash-sait.com$ RewriteCond %{HTTP_HOST} ^www.vash-sait.com$ RewriteCond %{REQUEST_URI} !^/robots.* RewriteRule ^(.*)$ http://vash-sait.ru/$1

Обратите внимание на первые 2 строки, там указано зеркало в зоне.com, если у вас иная или несколько зон, то добавляем правила.

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

Этот способ я уже описывал ранее, но повторюсь. Для того, чтобы склеить зеркала и выбрать основным домен без www прописываем:

RewriteCond %{HTTP_HOST} ^www.site\.ru$ RewriteRule ^(.*)$ http://site.ru/$1

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

Это действие противоположное предыдущему, только основное зеркало здесь www.site.ru:

RewriteCond %{HTTP_HOST} ^site\.ru$ RewriteRule ^(.*)$ http://www.site.ru/$1

301 редирект страниц со слэшем и без

Это еще один вид дублей, тут мы склеим страницы site.ru/category/ и site.ru/category, как видите, в конце второго урла не стоит слэша:

RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} ^(.+)/$ RewriteRule ^(.+)/$ /$1

Если вам нужно наоборот оставить слэш в конце урла, то вам нужен данный вариант:

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

Если у вас по какой-то причине появились урлы типа site.ru/category//article.html, то юзаем код:

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ RewriteRule . %1/%2

где, «//» можно заменить на «—» или любые сдвоенные символы в урле.

Массовая замена категории

Бывает, что вы переименовали категорию, а за ней закреплены тысячи урлов. Чтобы не состарится во время написания тысяч одинаковых перенаправлений юзаем:

RewriteRule ^(.*)/old-category/(.*)$ $1/new-category/$2

RewriteRule old-category /(.*) / old-category /$1

Редирект на новую страницу

Самый простой редирект со страницы на страницу, для это просто пропишите так:

Redirect 301 /old-post.html http://new-site.ru/new-post.html

Где old-post.html — это ваша старая страница, а new-site.ru/new-post.html — это новая страница и она может быть на любом домене (включая ваш текущий домен).

Редирект для url с параметрами

Страницы с параметрами редиректятся сложнее, возьмем пример http://site.ru/page.php?sort=articles. Параметр здесь «sort=articles». Код будет следующим:

RewriteCond %{QUERY_STRING} sort=articles RewriteRule .* http://site.ru/page.php?

Работаем с расширениями

Убираем.html из url (для удаления.php не забудьте заменить $1.html на $1.php):

RewriteRule ^(([^/]+/)*[^.]+)$ /$1.html [L]

Меняем.php на.html в урлах и наоборот (не забываем поменять местами в коде):

RedirectMatch 301 (.*)\.php$ http://www.site.com$1.html

Правильный 301 редирект на новый домен

Этот пункт я выделил отдельно, т.к. он больше связан с переносом на другой домен. Тут есть важный момент, это не упустить директиву по правке роботса — она указана на 3 строке кода.

RewriteCond %{REQUEST_FILENAME} robots.txt$ RewriteRule ^([^/]+) $1 [L] RewriteCond %{HTTP_HOST} ^site\.ru RewriteRule ^(.*)$ http://new-site.ru/$1 RewriteCond %{HTTP_HOST} ^www.site\.ru RewriteRule ^(.*)$ http://new-site.ru/$1

С помощью таких не хитрых махинаций мы избавимся от дублей страниц, тем самым улучшив нашу внутреннюю оптимизацию и соответственно качество сайта.

Если у вас появились какие-то вопросы, пишите в комментарии — будем разбираться 🙂

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

    сайт открывается по 2 адресам: www.mysite.ua и mysite.ua (для поисковых машин это существенная разница и они воспринимают 2 адреса, как 2 разных сайта), поэтому необходимо сделать чтобы при обращении к страницам сайта с www, шла переадресация на такие же страницы сайт без www, например с http://my site.ua /news/ на http://www.mysite.ua/news/ ( или наоборот ).

    у вас есть несколько доменов, основной mysite.ua и альтернативный my-site.ua и/или кириллический мойсайт.укр . Необходимо, чтобы при наборе в браузере адреса my-site.ua и/или мойсайт.укр посетитель автоматически перенаправился на сайт mysite.ua.

1. Перенаправление домена в файле .htaccess .

1.1. С www-домена на основной домен

Если на вашем сервере включен модуль mod_rewrite , то того, ч тобы настроить переадресацию с адресов, начинающихся с www на аналогичные без www, нужно в файле .htaccess , в корневой папке www вашего сайта прописать следующие строки:

RewriteEngine On RewriteCond %{HTTP_HOST} ^ www .(.+)$ RewriteRule ^(.*)$ http://%1/$1

1.2. С основного домена на www-домен

RewriteEngine On RewriteCond %{HTTP_HOST} !^( www .) RewriteRule ^(.*)$ http:// www .%{HTTP_HOST}/$1

1.3. С одного домена на другой

Задача может быть решена так же как и первая, для настройки перенаправления посетителей с одного доменного domain1.ua имени на другое domain2.ua вы можете использовать соответствующие директивы в файле .htaccess .

Сделать на старом домене domain1.ua файл.htaccess, с содержанием:

RewriteEngine On RewriteCond %{HTTP_HOST} domain1. ua RewriteRule (.*) http:// domain2. ua /$1

1.4. Перенаправление с нескольких доменов

Необходимо сделать переадрессацию с доменов domain1.ua и www.domain1.ua на новый домен domain2.ua , для это впишите:

RewriteCond %{HTTP_HOST} ^ domaim1 \. ua RewriteRule ^(.*)$ http:// domain2.ua /$1 RewriteCond %{HTTP_HOST} ^www. domain1 \. ua RewriteRule ^(.*)$ http:// domain2.ua /$1

Аналогично можно делать перенапрвление с domain.ua на domain.com и т. п.

Однако если вы размещаетесь на тарифном плане с ограниченным числом доменов, включенных в тариф, то настройка сайта с одним только файлом.htaccess лишит вас еще одного домена в квоте по тарифу, что не всегда приемлемо. В этом случае можно воспользоваться специальным сервисом панели управления хостингом.

2. Перенаправление домена в панели управления хостингом

На примере панели управления «cPanel»

Вы можете выбрать варианты перенаправления – 301 или 302.

301 редирект - это постоянное перенаправление. Т.е. при установке 301 редиректа всем, в том числе поисковым машинам, будет сообщено, что запрашиваемая страница навсегда «переехала» на новый адрес. Такое перенаправление необходимо, например, при переезде с одного доменного имени на другое. Таким образом, вы не потеряете поисковый трафик, а поисковые машины будут оповещены о смене адреса.

302 редирект - это временное перенаправление. Таким образом, пользователи, вызывая страницу, на которую установлен 302 редирект, будут получать ответ с указанного в редиректе адреса. Однако в поисковых машинах прежний адрес останется и будет удерживать свои позиции.

Также, можно выбрать опции перенаправления, связанные с синонимом сайта с www. Обратите внимание, что переадресацию с домена http://www.site.ua/ на http://site.ua/ средствами cPanel сделать не удастся. Подобный редирект создается с помощью файла .htaccess .

Управление перенаправлением выглядит довольно стандартно. Вы можете удалить созданный параметр:

3. Перенапрвленеи кирилличнский доменов

Переадрессация кириилических доменов ничем не отличается от обычного (на латинице). Просто необходимо использовать конвертер punycode .

Punycode – это метод преобразования символов, относящихся к стандарту Unicode , в последовательность символов, содержащих только символы в кодировке ASCII , а именно 26 букв латинского алфавита (a-z), цифры (0-9) и символ дефиса (всего 37 символов).

Домены, содержащие символы национальных алфавитов называют IDN-доменами. Некоторые сервисы не поддерживают IDN представление доменов. Поэтому не работает домен УКР или другие IDN-домены. В таком случае необходимо использовать имя домена после Punycode-конвертации.

Например, домен http://мойсайт.укр/ после кодирования (можно воспользоваться сервисом http://wwhois.ru/punycode.php) становится , его-то мы и вписываем в уже знакомый код

RewriteEngine On RewriteCond %{HTTP_HOST} http://xn--80arbjktj.xn--j1amh/ RewriteRule (.*) http:// domain2. ua /$1

или в соответствующую строку в панели управления.

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

Пошаговая инструкция по смена адреса сайта

1. Скопируйте полностью все файлы сайта на новый домен (при этом со старого домена пока ничего не удаляйте). Желательно сохранив всю структуру сайта, иначе позиции могут измениться довольно сильно.

2. Пропишите в обоих robots.txt директиву host с адресом нового домена:

User-agent : * Host : newdomen.ru

Это надо сделать как на старом домене, так и на новом:

olddomen.ru/robots.txt newdomen.ru/robots.txt

3. В Яндекс Вебмастер зайдите в раздел "Настройки индексирования" &rt; "Переезд сайта" и укажите адрес нового домена.

В Google Вебмастер также есть опция "смена адреса сайта".

4. После смены желательно дождаться пока поисковые системы склеят эти домены.

5. Нужно сделать 301 редирект со старого домена на новый. Как это сделать читайте далее.

301 редирект со старого домена на новый

Правильнее и проще всего это делать через файл.htaccess (располагается в корне сайта). Этот код нужно разместить на старом сайте, на новом домене размещать его не нужно!

Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} robots.txt$ RewriteRule ^([^/]+) $1 [L] RewriteCond %{HTTP_HOST} ^oldomen\.ru RewriteRule ^(.*)$ http://newdomen.ru/$1 RewriteCond %{HTTP_HOST} ^www.olddomen\.ua RewriteRule ^(.*)$ http://newdomen.ru/$1

Или второй вариант

Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} robots.txt$ RewriteRule ^([^/]+) $1 [L] RewriteRule (.*) http://newdomen.ru/$1