ВАШЕ ИМЯ * | |
ТЕЛЕФОН * |
ВРЕМЯ ЗВОНКА * (по московскому времени) |
УСЛУГА * |
В данной статье мы с вами рассмотрим что такое 301-й редирект, и зачем он вашему сайту нужен.
301 код ответа от веб-сервера возвращается тогда, когда вы допустим обратились к какому либо определённому внутреннему url адресу на сайте, и ваш запрос был автоматически перенаправлен на новый url адрес. И пользователи, и поисковые боты при обращении по старому не существующему адресу, будут перенаправлены на новый url адрес внутренней страницы на сайте, при этом все свойства старой страницы (вес страницы, pagerank) будут переданы новой странице на которою настроен 301 редирект. Таким образом, за счёт настроенного редиректа будет осуществлена склейка строго адреса с новым. Если речь идёт о склейке доменов, то есть перенаправление при с одного домена на другой, и если на старом домене были такие показатели как ТИЦ и PageRank, то данные показатели со временем “перетекут” на новое доменное имя, на которое был настроен 301 redirect.
Редирект с кодом ответа 301 – это один из самых рациональных способов сохранить и перенести весь рейтинг сайта или страницы, который был присвоен поисковыми системами. Как правило к 301-у редиректу прибегают в том случае, если весь контент сайта необходимо перенести на новый домен, или необходимо поменять систему управления сайтом (CMS), при этом нет возможности сохранить всю внутреннюю url иерархию сайта на новом домене. Осуществить переадресацию можно несколькими вариантами, в зависимости от установленного у вас на сайте программного обеспечения.
Если веб-сервер, на котором расположен ваш сайт работает под управлением апача (Apache), то всю переадресацию можно настроить в файле .htaccess. Данный файл находится в корне сайта, и бывает что он называется htaccess.txt. К примеру в популярной системе управления контентом Joomla, при установке данной CMS на хостинг, необходимо переименовать файл htaccess.txt на такой вид .htaccess. Только тогда у вас будет на сайте работать и ЧПУ и 301 редирект, который предварительно необходимо настроить. Под управлением веб-сервера Apache необходимо включить такие модули как mod_alias (осуществляет поддержку директив Redirect, RedirectMatch и RedirectPermanent). Также необходимо включить модуль mod_rewrite в файле веб-сервера апач php.ini.
Redirect 301 /page.html http://site.ru/new-page.html
или
Redirect permanent /page.html http://site.ru/new-page.html
Из недостатков данного способа хочется отметить, что придётся все адреса вбивать в ручную, один за одним в файл .htaccess, с которых необходимо сделать редирект на новые страницы сайта. Как вы понимаете, этот процесс не особо быстрый и удобный.
Можно применить для этих же целей директиву RedirectPermanent.
RedirectPermanent /page.html http://site.ru/new-page.html
Данный способ очень похож на предыдущий, только в нём можно задать регулярное выражение для прошлых URL адресов. Если вы скажем меняете систему управления сайтом с PHP на ASP, то тогда старые адреса необходимо будет перенаправить таким образом:
RedirectMatch /(.*)\.php$ /$1.aspx
Чтобы использовать директиву RewriteRule, необходимо знать что на веб-сервере в файле httpd.conf осуществлено подключение модуля mod_rewrite, а также включена такая опция как FollowSymLinks.
Применением модуля mod_rewrite даёт широкий перечень возможностей для осуществления 301 редиректа со старых страниц на новые url адреса.
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Данный редирект очень важен, поскольку на ваш сайт в интернете пользователи в будущем возможно будут ставить ссылки на форумах, блогах социальных сетях и т.д. Вы не знаете как пользователи будут прописывать вашу ссылку на просто рах интерната, с www или без www. Если редирект не прописан в файле .htaccess, и главное зеркало домена у вас является без www, а ссылку поставили с www так http://www.site.ru, то ссылочный вес вам на сайт не перетечёт без 301-ого редиректа. Сотвественно, если редирект всё же настроен, то ссылка проставленная на не главное зеркало сайта будет работать в любом случае, поскольку в данной ситуации произойдёт склейка.
Ниже представлен альтернативный вариант редиректа, который может быть для многих более понятным:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
В данном случае всё тоже самое что и в предыдущем, только тут в качестве главного домена является домен с www префиксом. Подобные редирект имеет смысл прописывать если ваш сайт поисковые роботы проиндексировали с www. Если вы настроите 301 redirect всё же как в первом случае, то в последствие все ваши проиндексированные страницы вылетят из индекса, и только потом сайт начнёт заново индексироваться, только уже согласно новым правилам 301-ого редиректа. При таком варианте, все занимаемые позиции в поисковых системах будут потеряны, поскольку сайт на время выпадет из индекса, а это как минимум не выгодно, ни владельцу сайта, ни оптимизатору. Поэтому, если сайт изначально проиндексирован с www, то прописывайте в .htaccess ниже приведённый код, и тогда не главное зеркало домена будет склеяно с главным.
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
Ниже приведён альтернативный вариант 301-ого редиректа:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]