Про 301 редирект уже, наверное, сказано и пересказано множество раз в блогах, форумах и т.п. Но, как оказывается, не до всех эта информация вовремя доходит.
Беглый опрос в твиттере показал, что реально все “забивают” на этот важный момент. Большинство единогласно ответило, что в обязательном порядке устанавливает 301 редирект сразу при создании сайта. Более того, тут недавно попросили по разработке сайта добавить этот же самый 301 редирект для них, поскольку просьба пришла от продвигающей их конторы. Учитывая все эти моменты и “намеки судьбы” я понял 301 редиректу быть!
Зачем вообще нужен 301 редирект? – спросите вы – есть несколько ситуаций в которых его можно применить:
Вообще 301 редирект нужен как для пользователей, так и для поисковых роботов – позволяет сориентировать тех и других, что есть новый сайт, домен, страница и без лишних вопросов переадресовывает их туда. Кроме того 301 редирект произведет склейку показателей сайтов и позволит не потерять позиции в поисковых системах.
Решений для этой задачи есть множество, все зависит от того какими техническими средствами обладает ваш хостинг. Также в интернете есть много статей по 301 редиректу, которые можно почитать, я приведу лишь несколько, на мой взгляд, самых типичных ситуаций.
Простой редирект
Производится в файле .htaccess или httpd.conf для Apache. Самый простой вариант простого 301 редиректа для переадресации на новый домен выглядит следующим образом:
Redirect 301 / http://www.site.com/index.htm
В этом случае все страницы старого сайта будут перенаправлены на новый. Если вы хотите сделать 301 редирект для одной страницы, то можно использовать что-то вроде:
Redirect 301 /site1/page1.htm http://www.site2.com/page2.htm
Вот еще парочка примеров простого 301 редиректа:
RedirectPermanent / http://www.site2.com/
RedirectPermanent /old-catalog http://www.site2.com/new-catalog/
Можно поставить 2 условия – для редиректа сразу (нужно помнить что порядок следования важен):
Redirect permanent /test http://www.test.com/ Redirect permanent / http://enter.test.com/
Здесь при попадании пользователя или робота в директорию test он перенаправится на www.test.com, все остальные попадут на enter.test.com. Для этого 301 редиректа на хостинге должны быть включены модули mod_alias (для поддержки Redirect, RedirectPermanent и RedirectMatch).
301 редирект с помощью mod_rewrite в .htaccess
С модулем mod_rewrite вы сталкивались достаточно часто даже не подозревая этого. В частности речь идет про постоянные ссылки (permalinks) как полезный инструмент в seo оптимизации wordpress. Если в админке настроите эти самые ссылки и после этого зайдете в файл .htaccess, то обнаружите там целый ряд правил для переадресации через директиву RewriteRule. Кроме того нужно проверить чтобы была подключена опция FollowSymLinks.
Перенаправление домена с www на без-www
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Чуть более понятный синтаксис
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.domain\.com$ [NC] RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
Редирект запросов без-www на домен с www префиксом
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^domain\.com$ [NC] RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
или же альтернативный вариант:
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} !^www\.(.*) [NC] RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
Вообще использование www в названии сайта само по себе устарело, но иногда до сих пор встречается. Если вы создаете новый сайт, то конечно сразу указываете везде без www, но если получили “готовый продукт”, то нужно смотреть как домен отображается в выдаче Google и Яндекс – такой редитект и оставляете дабы ничего кардинально не менять.
301 редирект старого домена на новый:
Options +FollowSymLinks RewriteEngine on RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
Если хотите чтобы вместо rewrite.htm загружался файл rewrite.html, добавьте в .htaccess:
RewriteEngine on RewriteBase / RewriteRule ^rewrite\.htm$ rewrite.html [R=permanent]
Для замены всех .htm файлов .html файлами:
RewriteEngine on RewriteBase / RewriteRule ^(.*)\.htm$ $1.html [R=permanent]
301 редирект через PHP
Вся суть 301 редиректа через PHP, ASP, JavaScript в передаче клиенту заголовков:
HTTP/1.1 301 Moved Permanently Location: http://www.newdomain.ru/newdir/newpage.htm
Для этого, например, в PHP используем:
<?php header("HTTP/1.1 301 Moved Permanently"); header("Location: http://www.newdomain.ru/newdir/newpage.htm"); exit(); ?>
Данный код лучше всего вставлять в начало PHP скрипта чтобы до него ничего не выводилось (echo или print).
Примечания по 301 редиректу
Напоследок пару моментов по 301 редиректу, которые нужно помнить и с которым я так или иначе столкнулся:
Предупреждение: Вся информация представлена исключительно в образовательных целях.
Администрация сайта не несёт ответственности в случае ее использования в противозаконных целях.
Segamoney™ - Copyright © 2010-2015 Black & White SeO - Заработок в Интернете!