Как настроить 301-й редирект? Виды и коды на все случаи переадресации

Как настроить 301-й редирект?
Виды и коды на все случаи переадресации

Что такое 301-й редирект, и в каких ситуациях он может использоваться, мы уже ранее рассказывали в нашем блоге. Но обращаем ваше внимание, что, к сожалению, не существует единого редиректа на все случаи жизни. Его необходимо настраивать для решения конкретной задачи, а также исходя из технических возможностей вашего хостинга.
Итак, давайте посмотрим, какие виды 301-го редиректа существуют, для чего они применяются и как их реализовать.

I. Редирект для файлов .htaccess или httpd.conf для Apache

1. Простой редирект. Этот способ переадресации подойдет, если вам надо:
  • перетащить сайт с одного доменного имени на другое
  • внести изменения в структуру сайта (например, изменились адреса некоторых страниц)
  • сохранить трафик из поисковиков и пузомерки (показатели сайта, например, тИЦ)
Реализуется достаточно просто, добавлением вот такой строчки в файл дополнительной конфигурации веб-сервера:
Redirect 301 / http://www.site.ru/
Смысл здесь в том, что вы говорите системе: всё, что будет в адресной строке после / , перенаправлять вот на этот адрес – и указываете нужный URL. Можно также использовать вот такой код:
RedirectPermanent / http://www.site.com/
В целом это одно и то же, просто разные модификации.
Важно! Мы не рекомендуем использовать данный редирект для настройки главного зеркала, потому что возможно появление циклической переадресации. Для этих целей лучше выбрать другой способ, о котором мы расскажем ниже.
Этот метод переадресации также подойдет, если вам надо сказать роботу, что изменился адрес только одной страницы. Для этого вставьте следующий код:
Redirect 301 /site/page.htm http://www.site1.com/pagenew.htm
или
RedirectPermanent /catalog http://www.site2.com/new-catalog/
2. SEO-редирект. Этот вид редиректа применяется, если вам надо сделать переадресацию с сайта без www на сайт с www (или наоборот). Так сказать, для настройки главного зеркала, чтобы не рассеивать усилия по продвижению на несколько доменов.
При переносе с домена с www на домен без www
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
При переносе с домена без www на домен с www
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
Важно! Перед этим кодом обязательно надо прописать правило, по которому мы исключим файл robots.txt для редиректа. Это можно сделать так:
<FilesMatch "robots.txt$">
RewriteEngine off
</FilesMatch>
Это важно, потому что файл robots.txt управляет поисковыми роботами. К примеру, прописывается основное зеркало для робота Яндекса и ответ http-заголовка от данного файла должен быть HTTP/1.1 200 OK. Если правило не указать, то индексация и склейка главного зеркала будет проходить медленнее.
3. Редирект для переадресации со старого сайта на новый. Используется в том случае, если вы хотите переводить пользователей, а также поисковых роботов со своего старого сайта на новый.
Здесь не рекомендуем использовать способ переадресации, который был описан в первом пункте. Корректнее применить вот такой код с правилом:
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
4. Редирект для файлов. К примеру, расширение htm на html.
У вас появилась необходимость изменить имена файлов, но вы не хотите их переименовывать и перезаливать на сервер? В этом случае вам также поможет 301-й редирект. Для это используется такой код:
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)\.htm$ $1.html [R=permanent]

II. Настройка редиректа в nginx

Редирект на nginx можно реализовать, вставив следующий код в файл, где вы указываете правила для переадресации:
if ($host = 'www.domain.com' ) {
rewrite ^(.*)$ http://domain.com$1 permanent;
}

III. Прописание редиректа с помощью скрипта отправки заголовка

Часто бывает так, что нет доступа в файл дополнительной конфигурации веб-сервера, а следовательно, нет возможности его редактировать. В такой ситуации можно сделать редирект с помощью специальных скриптов. Суть этого метода заключается в том, что клиенту или роботу передаются соответствующие заголовки, которым должна отвечать страница при 301-м редиректе. Рассмотрим три наиболее часто встречающихся случая:
1. PHP-редирект – самый распространенный вариант. Для прописания 301-го редиректа используем вот такой код, который рекомендуем вставить в самое начало страницы, с которой надо сделать редирект:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.ru/newdir/newpage.htm");
exit();
?>
2. ASP-редирект
<%@ Language=VBScript %>
<% 
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://www.new-url.com/"
response.end
%>
3. ASP.NET-редирект
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.new-url.com/");
}
</script>
Вместо вывода еще немного полезной информации по 301-му редиректу. Помните, что последовательность правил очень важна при настройке переадресации. После настройки нового правила всегда проверяйте корректность его работы.
Если вы не можете самостоятельно справиться с настройкой 301-го редиректа на своем сайте, можете обратиться за помощью к нашим специалистам. А все вопросы пишите в комментарии к статье.

Комментариев нет:

Отправить комментарий