301 Redirect - что это такое и как это использовать?
301 Moved Permanently – такой ответ сервера знаком практически каждому оптимизатору. С ним связано множество вопросов на тематических форумах, а от правильно настроенного редиректа зачастую зависит успешность продвижения сайта. Не случайно пункты по работе с ним входят в базовые чек-листы seo-специалистов.
Слово «redirect» переводится с английского как «перенаправление». Если поисковый робот или посетитель сайта зайдёт на выбранный адрес, сервер его сразу перенаправит по другому адресу (согласно указанным правилам).
Когда необходим 301 Redirect?
Самые часто используемые ситуации, когда используется данный тип редиректа это:
- Ситуация, когда старая страница (раздел) теперь доступны по новому адресу;
- Смена доменного имени, переезд с site1.ru на site2.ru;
- Борьба с дублями страниц
Также существуют и другие случаи, которые мы рассмотрим подробно для самого распространенного web-сервера Apache. В качестве примера, возьмем домен нашей компании oridis.ru
Redirect без www на сайт с www
Вы можете осуществить такое перенаправление, указав в файле .htaccess следующие строчки:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^oridis\.ru$ [NC]
RewriteRule ^(.*)$ http://www.oridis.ru/$1 [R=301,L]
Redirect с www на сайт без www
Обратный тип перенаправления описывают так:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.oridis\.ru$ [NC]
RewriteRule ^(.*)$ http://oridis.ru/$1 [R=301,L]
Redirect с index.php на корень
Другой часто возникающей задачей является редирект с индексной страницы (index.php) на / (корень). Решить её можно следующим способом:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://oridis.ru/ [R=301,L]
Аналогично можно сделать редиректы с index.htm или index.html на корень.
Redirect с одной страницы на другую
Главной особенностью 301-го редиректа является то, что при перенаправлении с одной страницы на другую, вес старой старой страницы «перетекает» на новую. Именно поэтому его так любят seo-специалисты. Самый простой способ реализации перенаправления является следующая конструкция:
После исполнения данного правила, пользователь, зайдя на http://oridis.ru/old.html, будет автоматически перенаправлен на http://oridis.ru/new.html. Поисковые системы также получат информацию о том, что страничка полностью переехала на новый адрес. При этом в поисковой выдаче останется только http://oridis.ru/new.html, в отличие от 302-ого редиректа при котором в выдаче останется old.html.
Совсем недавно у меня была задача осуществить редирект со страниц c GET-параметрами, но простой редирект с одной страницы на другую для этих целей не подходил, я обратился за помощью в отдел разработки нашей компании, который посоветовал воспользоваться данным сервисом.
С его помощью, за пару кликов я сгенерировал правила для перенаправления таких страниц.
Redirect на страницы со слешем в конце
Если у вас индексируются страницы и со слешем и без него («/») на конце, то исправить ситуацию поможет следующее правило:
RewriteCond %{REQUEST_URI} !\..{1,10}$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.oridis.ru/$1/ [L,R=301]
Если предыдущий вариант не сработал, например, если настройки вашего web-сервера запрещают использовать подобную конструкцию, то используйте этот код:
RewriteCond %{REQUEST_URI} !\..+$
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) http://www.oridis.ru/$1/ [R=301,L]
PHP 301 Redirect
И наконец, можно осуществить перенаправление через PHP код:
‹?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://www.oridis.ru /new.htm”);
exit();
?›
Вышеописанный код размещается на странице, с которой необходимо сделать редирект. После его исполнения произойдет перенаправление на http://www.oridis.ru/new.htm
Желаю всем оптимизаторам и веб-мастерам успехов в продвижении!
Ямщиков Сергей, SEO-специалист