Как правильно настроить 301 редирект в файле .htaccess
- Опубликовано: 2014/06/23Рубрика:
- Полезные материалы
- Комментариев: 0
- Просмотров: 15015
Основная задача данного редиректа состоит в том, чтобы сообщить посетителю сайта и поисковому роботу что страница, на которую они попали, навсегда переехала на другой адрес и соответственно перенаправить их на неё.
В практике поисковой оптимизации, 301 редирект используется довольно часто и в этой статье мы вам расскажем о самых основных применениях.
Редирект домена без WWW на домен с WWW или наоборот
Если ваш сайт открывается по адресу www.domain.com и domain.com и при это не меняется URL в строке браузера – это проблема.
В таком случае, роботы поисковых систем не всегда правильно смогут определить основную версию сайта и будут добавлять страницы вашего сайта в индекс как с префиксом www так и без, что и приводит к дублированию контента вашего сайта.
Особой роли не играет, как ваш домен будет выглядеть в результатах поиска Google, Yandex или других – www.domain.com или domain.com, но в избежание дублирования контента сайта лучше выбрать один вид и сразу настроить правильный редирект. Определить основную версию сайта, можно так же и через GoogleWebmasterTools – но это мы расскажем в следующих выпусках.
Как настроить?
Выбранный вами код нужно добавить в файл .htaccess, который находится в корне вашего сайта. Если файла .htaccess не существует – создайте его.
Редирект всего сайта на версию с www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
Редирект всего сайта на версию без www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com
RewriteRule (.*) http://domain.com/$1 [R=301,L]
Результат
Если настройки будут внесены корректно, то у сайта уже будет определенна основная версия и если кто-то будет пробовать открыть сайт например с префиксом www, то он будет перемещен на версию без – автоматически.
Редирект со страниц дублей, которыми грешат многие CMS
Некоторые CMS создают несколько URL для одной и той же страницы.
Например, domain.com/index.php?contact и http://domain.com/contact могут вести на одну и ту же страницы и с помощью 301-го редиректа мы определим основную версию страницы, избавимся от дублей. В этой ситуации можно воспользоваться и другим решением – тэгом rel=»canonical», о котором я вам расскажу в следующих выпусках.
Как настроить?
Выбранный вами код нужно добавить в файл .htaccess, который находится в корне вашего сайта. Если файла .htaccess не существует – создайте его.
Redirect 301 /page1 http://www.site.ua/page2
или Redirect permanent /page1 http://www.site.ua/page2
Где “/page1” дублирующий адрес, а “http://www.site.ua/page2” полный URLосновной страницы
Результат
Теперь при запросе дублирующего URL, посетитель будет перемещен на основную версию страницы.
При изменении структуры URL адреса страниц
Как настроить?
Выбранный вами код нужно добавить в файл .htaccess, который находится в корне вашего сайта. Если файла .htaccess не существует – создайте его.
Redirect 301 /page1 http://www.site.ua/page2
или Redirect permanent /page1 http://www.site.ua/page2
Где “/page1” адрес старой страницы, а “http://www.site.ua/page2” полный URL новой страницы
Результат
Теперь при запросе URL, который был удален или ошибочен — посетитель будет перемещен на новую страницу или главную страницу.
При полном переезде сайта со старого домена на новый
Вы приобрели более короткое доменное имя или переезжаете в другую географическую доменную зону?
В этом случае без редиректа никак не обойтись, это одно из главных решений для ускорения индексации нового сайта и корректной переадресации пользователей со старого сайта на новый с сохранением структуры.
Как настроить?
Выбранный вами код нужно добавить в файл .htaccess, который находится в корне вашего старого сайта. Если файла .htaccess не существует – создайте его.
RewriteEngineonRewriteRule (.*) http://newdomain.com/$1 [R=301,L]
Где “(.*)” регулярное выражение, которое обозначает любую страницу старого сайта, а “http:// newdomain.com/” новый домен, куда перенаправлять посетителей.
Результат
С этого момента, любой посетитель или робот поисковой системы запросивший главную страницу сайты или любую другую, будет автоматические перемещен на точную такую же, но только на новом домене.
Примеры редиректов реализованных другими способами:
PHP редирект
Это код перенаправит посетителя со страницы, где этот код вставлен, на страницу, которая указана в разделе Location.
Код должен быть вставлен в начало страницы.
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.New-Website.com");
META (HTML) редирект
Это код перенаправит посетителя со страницы, где код вставлен, на страницу, которая указана в параметре url.
Код вставляется в самом начале страницы, в блоке <head> </head>
JSP (Java) редирект
<%
response.setStatus(301);
response.setHeader( "Location", "http://www.newlocation.com");
response.setHeader( "Connection", "close" );
%>
ASP редирект
<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://www.yourdomain.com/new-page.asp"
Response.End
%>
После настройки редиректов всегда проверяйте их на корректность работы в браузере или специализированными программами или сервисами, такие как Xenu или get-sniffer.com, где и показывается какой код ответа поступил от сервера и правильно ли работает редирект. Нарушение последовательность правил приведет к неработоспособности всего сайта.