Периодически, к нам обращаются наши клиенты, с вопросом, как сделать переадресацию сайта с одного домена на другой. Как правило, этот вопрос задают в двух вариантах:
-
сайт открывается по 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»
Вы можете выбрать варианты перенаправления – 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) становится http://xn--80arbjktj.xn--j1amh/ , его-то мы и вписываем в уже знакомый код
RewriteEngine On
RewriteCond %{HTTP_HOST} http://xn--80arbjktj.xn--j1amh/
RewriteRule (.*) http://domain2.ua/$1 [R=301,L]
или в соответствующую строку в панели управления.
В инете практически нет дельных советов, как же правильно настроить 301 редирект не только с главной старого сайта на главную нового сайта.
К тому же, нет конкретных советов, как сделать корректный 301 редирект с КАЖДОЙ СТРАНИЦЫ старого сайта на ТАКУЮ ЖЕ СТРАНИЦУ нового сайта!
Вы могли бы (будете просто первопроходцем…) здесь написать как сделать точно и полностью ИМЕННО В ОДНОМ БЛОКЕ ЗАПРОСА регулярных выражений в .htaccess файле:
1. 301 редирект с главной старого сайта на главную нового сайта.
2. 301 редирект каждой страницы старого сайта на ТАКУЮ ЖЕ СТРАНИЦУ нового сайта.
Пожалуйста, очень ждем.
Спасибо!