8-800-500-89-91

1 сентября 2015

Статья прочитана 5269 раз

Как настроить 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-го редиректа на своем сайте, можете обратиться за помощью к нашим специалистам. А все вопросы пишите в комментарии к статье.

301-й редирект, оптимизация сайта, продвижение сайта, техническая оптимизация

Автор Екатерина Иова
Специалист по связям с общественностью 1PS

Понравилась статья?



Правила комментирования блога

Подпишитесь на рассылку и получайте свежие хаки об интернет-маркетинге и SEO

ДА!

1 письмо
в неделю

3 статьи
в письме

Бонус «для своих»
в каждом письме