Опубликовано в разделе: Полезное Сегодня…
Опубликовано в разделе: Полезное Сегодня мы с Вами будем обсуждать правильную склейку домена: 301-й редирект, 302-й редирект, директиву Host. Проблема склейки первый раз встала передо мной, когда купленный сайт был передан без переоформления домена. Пока мы разбирались с прежним владельцем сайта, нужно было оперативно склеивать его с моим доменом. Потом мне пришлось решать проблему одной конторы в моём городе, когда по неясной причине домен их сайта был зарегистрирован на вебмастера. Когда решили расстаться с этим человеком и попросили его отдать управление доменом, он начал какой-то мелкий шантаж, но dns не менял, мне нужно было оперативно склеить домены. В посте я распишу готовую инструкцию по правильной склейки домена. Всё ни так просто как рассказывается на многих блогах и нужно подходить более гибко к применению методов склейки. 301-й редирект Этот код означает, что страница перемещена. Получив код ответа 301, браузер автоматически меняет в адресной строке старый адрес на новый и открывает при этом страницу по новому адресу. Про этот редирект написано на каждом блоге, поэтому боянить не буду, а лишь напомню, как его установить. Находим в корне сайта файл. htaccess и прописываем в нём: Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.старый-сайт\.ru$ [NC] RewriteRule ^(.*)$ http://новый-сайт. ru/$1 [L, R=301] RewriteCond %{HTTP_HOST} ^старый-сайт\.ru$ [NC] RewriteRule ^(.*)$ http://новый-сайт. ru/$1 [L, R=301] В случае, когда новый и старый домены находятся в разных каталогах, то можно прописать вот такой код (конечно, в файле. htaccess на старом домене): Options +FollowSymLinks RewriteEngine on RewriteRule (.*) http://новый сайт. ru/$1 [R=301,L] Внимание: строчки Options +FollowSymLinks RewriteEngine on прописываются в. htaccess, если только ранее не были там. Если они уже есть в файле, то их повторять не нужно. Для популярных php скриптов (Joomla, Drupal, WordPress, dle) можно задействовать 301-й редирект и без ковыряний в. htaccess. Для этого нам нужно в корне сайта найти файл index. php, найти в нём строки с require или include и перед ними вставить: if ($_SERVER['HTTP_HOST'] != “новый домен”) { header(”HTTP/1.0 301 Moved Permanently”); header(”Location: http://новый домен”); } “новый домен” – пишем домен без http:// , можно с www, если хочется. Вроде бы всё хорошо, по теории мы прописываем 301-й редирект и поисковые машины, получив от страницы код 301 передадут все накопленные показатели старого адреса на новый. Но реалии совсем другие. По сути, этот код заставляет поисковик делать две операции: исключить из индекса страницы по старым адресам, и включить в индекс страницы по новым. Первая операция проходит достаточно быстро, а вот вторая длится неопределённый срок. Из этого можно вывести, что сайт на какое-то время может полностью выпасть из индекса. Google обрабатывает эти два запроса очень быстро, а вот яндекс может растягивать полное выполнение 301-ого редиректа очень долго. Поэтому для яндекса такой способ склейки весьма сомнителен в плане практических результатов. 302-й редирект Практическая задумка 302-ого редиректа была хорошая, но по факту он действует, как и 301-й. Этот редирект говорит о том, что страница временно перемещена на новый адрес, но при этом не следует удалять из индекса старый адрес страницы. Прописывается он, так же как и 301-й редирект, только нужно заменить 301 на 302. Однако, пользоваться я им не рекомендую, всё равно получите результат как и с 301. Если кому-то будет интересно, почему поисковики прировняли 302-й к 301-вому, то я могу ответить подробнее в комментариях. Я же советую при склейки доменов никогда не использовать 302-й редирект. Директива Host Эта директива прописывается в robots. txt и она указывает, что если найдено несколько доменов с одним содержанием, то основным является указанный в Host. Находим в корне сайта файл robots. txt, если его нет, то создаём, видим там Allow и Dissalow и сразу после них (без пустых строк) пишем Host. Примерно так: User-agent: Yandex Disallow: Host: site. ru Вместо site. ru пишем новый домен (можно с www, если необходимо). Директива Host не заставляет что-то исключать из индекса, она лишь даёт понять ПС на какой домен ориентироваться, как на основной. Она бы была идеальным способом склейки домена, но ни все пс одинаково реагируют на неё. Яндекс всегда к ней прислушивается в отличии от гугла. Поэтому её нужно применять для яндекса.