Код ответа 301 (Moved Permanently) означает, что запрошенный документ теперь доступен по новому адресу на постоянной основе. Редирект 301 может понадобиться в нескольких случаях: переезд на новый домен, изменение адреса страницы или склейка зеркал сайта. Цели этих мероприятий вполне прозрачны:
- Перенос старых показателей на новую страницу или домен.
- Устранение битых ссылок, как внешних, так и внутренних.
- Устранение дублей страниц.
Существует несколько способов сделать 301 редирект, но я предпочитаю вариант с использованием файла .htaccess, который находится в корневой папке FTP вашего сайта (если его там нет, то просто создайте его, он не имеет расширения).
Настройка 301 редиректа со страницы на страницу
Довольно часто возникает ситуация, когда страница сайта была удалена или вынуждена сменить свой URL. При обращении к её старому адресу, пользователь, само собой, увидит страницу 404 ошибки (не найдено).
Если станица маловажная, то не стоит и возиться, но если к ней часто обращались посетители сайта (и, возможно, у кого-то она сидит в закладках), если на неё ведут неподконтрольные вам внешние ссылки или, наоборот, подконтрольные внутренние, но в таких объёмах, что очень хочется их править, то настройка 301 редирект со старой страницы на новую станет для вас идеальным решением.
Также его можно использовать для борьбы с дублями страниц. В общем нужно писать книгу на тему «99 способов использование Redirect 301». Вот его синтаксис:
Redirect 301 /old-page.html http://new-domain.ru/new-page.html
Ну или так, результат будет один и тот же:
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
Поясняю: /old-page.html — относительный адрес старой страницы. Он может быть вложенным: /old-category/old-page.html, ну или таким: /old-category/old-page/ — тут никаких ограничений нет. Тоже самое относится к http://new-domain.ru/new-page.html (новой странице), с той лишь разницей, что путь тут абсолютный (не обязательно, чтобы это был новый домен — может быть просто новый внутренний адрес страницы).
Настройка 301 редиректа при переносе сайта на новый домен
Не менее понятная ситуация. Возникла необходимость переехать на новый домен, сохранив показатели старого (тИЦ, PR). В этом случае приписываем в .htaccess старого домена следующее:
Options +FollowSymLinks
RewriteEngine on
<FilesMatch "robots.txt$">
RewriteEngine off
</FilesMatch>
RewriteCond %{HTTP_HOST} ^old-domain\.ru
RewriteRule ^(.*)$ http://new-domain.ru/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.oldsite\.ru
RewriteRule ^(.*)$ http://old-domain.ru/$1 [R=301,L]
В данном примере мы установили редирект всех страниц старого домена на страницы нового (при условии, что их относительные адреса совпадают). При этом мы оставили без редиректа на старом домене файл robots.txt, чтобы процесс переноса был более полноценным. В него мы прописываем:
User-agent: *
Disallow:
Host: newsite.ru
Sitemap: http://newsite.ru/sitemap.xml
Ну и ждём пару месяцев, пока переезд домена не будет зачтен, а все характеристики — переданы.
Склейка зеркал сайта: 301 редирект c www на без www и наоборот
Существует несколько вариантов обращения к сайту — с www и без www (например, pingoblog.ru и www.pingoblog.ru). Пользователю все равно, как именно вводить URL, так как он в любом случае попадет на одну и ту же страницу. Иначе дело обстоит с поисковыми системами. Они расценивают www.site.ru и site.ru, как два совершенно разных домена (что тянется из глубин истории всемирной сети, когда это действительно было так).
Эти дубли мешают индексации сайта и продвижению в целом, так как, во-первых, это банальные дубли страниц (уж извиняюсь за повторение) и, во-вторых, входящие ссылки будут также укладываться в разные корзины. Тоже самое касается и дублей главной страницы: site.ru, site.ru/index.html, site.ru/index.php и т.д. По этой причине еще на этапе создания сайта желательно позаботиться об этом вопросе и одну из версий сайта (например, c www) переадресовать на другую (например, без www). Если момент был упущен, то тут нет ничего страшного.
Рассмотрим процесс склейки зеркал с помощью 301 редиректа поэтапно.
1. Определяем основной домен, выбранный для индексации поисковыми системами.
Основное зеркало можно легко определить по результатам поисковой выдачи Яндекс и Google. Вводим название домена и смотрим, какой адрес отобразится: www.site.ru или site.ru. Если же сайт еще не проиндексирован, то выбираем его по своему усмотрению. Если в Google и Yandex основные домены разные, то лучше оставьте Яндексовский.
2. Прописываем 301 редирект в .htaccess.
Находим в корне FTP сайта файл .htaccess, скачиваем и открываем в блокноте, а затем вносим в него необходимые изменения. Первый вариант — 301 редирект домена без www на с www:
Options +FollowSymLinks
RewriteEngine On
<FilesMatch "robots.txt$">
RewriteEngine off
</FilesMatch>
RewriteCond %{HTTP_HOST} ^site.ru$
RewriteRule (.*) http://www.site.ru/$1 [R=301,L]
Обратная ситуация — с www на без www:
Options +FollowSymLinks
RewriteEngine On
<FilesMatch "robots.txt$">
RewriteEngine off
</FilesMatch>
RewriteCond %{HTTP_HOST} ^www.site.ru$
RewriteRule (.*) http://site.ru/$1 [R=301,L]
После завершения редактирования, сохраняем файл и загружаем его в корневую папку FTP с перезаписью.
Опционально можно сразу же позаботиться о дублях главной страницы вида index.php и index.html, добавим ниже следующий код:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://www.site.ru/ [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.site.ru/ [R=301,L]
Ну и, опять же, если у вас site.ru:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://site.ru/ [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]
3. Настройка robots.txt
Увидели знакомую директиву, оставляющей robots.txt нетронутым? Все верно, вносим изменение в robots.txt:
Host: основное-зеркало.ru
4. Проверяем работу сайта.
Вводим тот адрес, который с которого мы проставляли редирект, например www.site.ru или site.ru/index.html и если при заходе на него происходит переход на site.ru, то всё настроено правильно.
5. Настройка Yandex и Google вебмастер.
Дополнительно применяем соответствующие настройки в личных кабинетах поисковых систем. В случае с Yandex:
Ну и для Google:
На этом вроде всё. Удачи вам и если появятся вопросы, то пишите в комментариях.
Материал обновлен: 12 января 2016 года.