Спасибо! Заявка на звонок принята, и мы обязательно свяжемся с Вами.
Закажите звонок нашего специалиста, и мы сами свяжимся с Вами в указанное время и ответим на все Ваши вопросы!
ВАШЕ ИМЯ *
ТЕЛЕФОН *
ВРЕМЯ ЗВОНКА *
(по московскому времени)
УСЛУГА *

Как сделать 301 редирект для сайта

В данной статье мы с вами рассмотрим что такое 301-й редирект, и зачем он вашему сайту нужен.

301 код ответа от веб-сервера возвращается тогда, когда вы допустим обратились к какому либо определённому внутреннему url адресу на сайте, и ваш запрос был автоматически перенаправлен на новый url адрес. И пользователи, и поисковые боты при обращении по старому не существующему адресу, будут перенаправлены на новый url адрес внутренней страницы на сайте, при этом все свойства старой страницы (вес страницы, pagerank) будут переданы новой странице на которою настроен 301 редирект. Таким образом, за счёт настроенного редиректа будет осуществлена склейка строго адреса с новым. Если речь идёт о склейке доменов, то есть перенаправление при с одного домена на другой, и если на старом домене были такие показатели как ТИЦ и PageRank, то данные показатели со временем “перетекут” на новое доменное имя, на которое был настроен 301 redirect.

Редирект с кодом ответа 301 – это один из самых рациональных способов сохранить и перенести весь рейтинг сайта или страницы, который был присвоен поисковыми системами. Как правило к 301-у редиректу прибегают в том случае, если весь контент сайта необходимо перенести на новый домен, или необходимо поменять систему управления сайтом (CMS), при этом нет возможности сохранить всю внутреннюю url иерархию сайта на новом домене. Осуществить переадресацию можно несколькими вариантами, в зависимости от установленного у вас на сайте программного обеспечения.

Настройка 301 редиректа в файле .htaccess

Если веб-сервер, на котором расположен ваш сайт работает под управлением апача (Apache), то всю переадресацию можно настроить в файле .htaccess. Данный файл находится в корне сайта, и бывает что он называется htaccess.txt. К примеру в популярной системе управления контентом Joomla, при установке данной CMS на хостинг, необходимо переименовать файл htaccess.txt на такой вид .htaccess. Только тогда у вас будет на сайте работать и ЧПУ и 301 редирект, который предварительно необходимо настроить. Под управлением веб-сервера Apache необходимо включить такие модули как mod_alias (осуществляет поддержку директив Redirect, RedirectMatch и RedirectPermanent). Также необходимо включить модуль mod_rewrite в файле веб-сервера апач php.ini.

Редирект с использованием директивы Redirect или RedirectPermanent модуля mod_alias

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

301 редирект за счёт директивы RedirectMatch

Данный способ очень похож на предыдущий, только в нём можно задать регулярное выражение для прошлых URL адресов. Если вы скажем меняете систему управления сайтом с PHP на ASP, то тогда старые адреса необходимо будет перенаправить таким образом:

RedirectMatch /(.*)\.php$ /$1.aspx

301 редирект за счёт директивы RewriteRule модуля mod_rewrite

Чтобы использовать директиву RewriteRule, необходимо знать что на веб-сервере в файле httpd.conf осуществлено подключение модуля mod_rewrite, а также включена такая опция как FollowSymLinks.

Применением модуля mod_rewrite даёт широкий перечень возможностей для осуществления 301 редиректа со старых страниц на новые url адреса.

301 редирект зеркала домена c www на без www

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]

301 редирект зеркала домена без www на домен с www

В данном случае всё тоже самое что и в предыдущем, только тут в качестве главного домена является домен с 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]