301-редирект: переадресация с одного домена на другой

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

  • сайт открывается по 2 адресам: www.mysite.ua и mysite.ua (для поисковых машин это существенная разница и они воспринимают 2 адреса, как 2 разных сайта), поэтому необходимо сделать чтобы при обращении к страницам сайта с www, шла переадресация на такие же страницы сайт без www, например с http://mysite.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.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

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

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

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

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

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

RewriteEngine On
RewriteCond %{HTTP_HOST} domain1.ua
RewriteRule (.*) http://domain2.ua/$1 [R=301,L]

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

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

RewriteCond %{HTTP_HOST} ^domaim1\.ua
RewriteRule ^(.*)$ http://domain2.ua/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.domain1\.ua
RewriteRule ^(.*)$ http://domain2.ua/$1 [R=301,L]

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

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

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

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

101

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

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

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

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

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

102

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

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

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

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

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

RewriteEngine On
RewriteCond %{HTTP_HOST} http://xn--80arbjktj.xn--j1amh/
RewriteRule (.*) http://domain2.ua/$1 [R=301,L]

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

  • Vernal

    В инете практически нет дельных советов, как же правильно настроить 301 редирект не только с главной старого сайта на главную нового сайта.

    К тому же, нет конкретных советов, как сделать корректный 301 редирект с КАЖДОЙ СТРАНИЦЫ старого сайта на ТАКУЮ ЖЕ СТРАНИЦУ нового сайта!

    Вы могли бы (будете просто первопроходцем…) здесь написать как сделать точно и полностью ИМЕННО В ОДНОМ БЛОКЕ ЗАПРОСА регулярных выражений в .htaccess файле:

    1. 301 редирект с главной старого сайта на главную нового сайта.
    2. 301 редирект каждой страницы старого сайта на ТАКУЮ ЖЕ СТРАНИЦУ нового сайта.

    Пожалуйста, очень ждем.

  • ilami_yasna

    Спасибо!

  • Здравствуйте.

    Меня интересует размещение банера и обзоров на вашем сайте.

    Напишите мне информацию о том, где и сколько это будет стоить, и как мне с вами связываться.

    Если можно, то в таком виде :

    Ваш Сайт /обратная связь/ стоимость рекламы/ посещаемость(траффик).

    Если у вас есть еще блоги и форумы тематики вебмастеров, то так же расмотрю ваши предложения.

    Мой емейл : snebavpala@ukr.net

    Спасибо за внимание. Успехов в делах.

    Антина.

  • Артем

    ВСем привет, по этому поводу нашел хорошее видео!