301 Redirect – это ошибка запроса к адресу сайта, означающая, что сайт или страница были перемещены. Решает эту ошибку сервер самостоятельно путем направления запроса на новый адрес, если функция редиректа настроена. Важно, что смена адреса учитывается не только для пользователей, но и для поисковых систем. Направление запроса на другой адрес в случае прекращения действия старого и есть 301 Redirect.
Для чего нужен 301 Redirect
Крайне важно в работе этой функции следующее: показатели одного адреса сайта передаются другому адресу. Все PageRank, тИЦ и даже ссылочный вес адреса будет закреплен за новой ссылкой. Т.е. если меняется адрес сайта или страницы, то функция 301 Redirect настраивается для сохранения рейтинга в поисковых системах. Показатели сайтов “склеиваются". Это главная задача редиректа 301.
Итак, подводя краткие итоги, имеем:
- 301 Redirect – функция сервера, которую нужно настроить;
- старый адрес “склеивается" с новым, сохраняя свои свойства.
Как настроить редирект 301 самостоятельно
Настройка через .htaccess
При работе с Apache настройка выполняется в файле .htaccess. Помните, что необходимо активировать mod_alias (отвечает за исполнение задания Redirect) mod_rewrite (для изменений URL) в файле php.ini. Для редактирования вышеуказанных файлов можно использовать любой текстовый редактор вплоть до обычного блокнота.
При смене адреса с WWW на адрес без WWW:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.oldpage.ru$ [NC]
RewriteCond %{REQUEST_URI} !^/robots.*
RewriteRule ^(.*)$ http://newpage.ru/$1 [R=301,L]
При смене адреса без WWW на адрес с WWW:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^oldpage.ru$ [NC]
RewriteCond %{REQUEST_URI} !^/robots.*
RewriteRule ^(.*)$ http://www.newpage.ru/$1 [R=301,L]
Прописывать все перенаправления страниц вручную – огромная по временным рамкам работа. Минимизировать и ускорить её можно, если все страницы старого адреса будут переводить любой запрос на главную страницу нового:
RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://newsite.ru/ [L,R=301]
Главные проблемы возникают при редиректе с одного домена на другой. Простой пример перенаправления на новый домен:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]
RewriteRule ^([^/]+) $1 [L]
RewriteCond %{HTTP_HOST} ^oldsite.ru
RewriteRule ^(.*)$ http://newsite.ru/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.oldsite.ru
RewriteRule ^(.*)$ http://newsite.ru/$1 [R=301,L]
Пользователей можно ставить в известность о том, что сайт переехал с помощью языка программирования PHP так называемого скрипта
HTTP/1.1 301 Moved Permanently
Location: http://www.newsite.ru/
В этом случае пользователь увидит сообщение о том, что случилось с сайтом, в данном примере “Moved Permanently" и увидит новый адрес сайта строкой ниже.
Перенаправление можно осуществить с помощью языка PHP, не влезая в файл .htaccess
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://www.newsite.ru/”);
exit();
?>
Советы по настройке 301 Redirect
А именно:
- пообщайтесь с представителями хостинга: какое ПО у них стоит и какие права у вас есть;
- переадресация должна быть от мелких к крупным (сначала страницы, потом домен);
- проверьте редирект после его настройки.