Redirect 301


301 редирект используется когда нужно перенаправить посетителя по новому адресу. 301 — это ответ сервера при обращении к нему. Который означает, что адрес по которому обратились был изменен навсегда (moved permanently). В результате вы как посетитель должны получить какой-то новый конечный адрес. И теперь все, зашедшие через браузер, а так же поисковые боты (роботы) будут перенаправляться по новому адресу.

При этом, для поисковиков все свойства старого адреса (страницы) будут переданы новому URL. Так же произойдет и так называемая склейка старого и нового адресов: при которой параметры PageRank от Google и тИЦ от Yandex, а также вес страницы и ссылочный вес старого адреса будет передан новому URL.

Переадресацию можно выполнить несколькими способами, в зависимости от установленного программного обеспечения. То есть директивами Web-сервера Apache в файле .htaccess в том числе с участием модуля mod_rewrite, либо с помощью скриптов PHP, JAVA, PERL, ASP и т.д., отправляя клиенту необходимые заголовки.
А в популярную CMS MaxSite функция редиректа встроена с помощью плагина и перенаправлением можно управлять прямо из панели администратора.
Чаше всего используются два редиректа 301 и 302. Где 302 — это временный редирект, а 301 — постоянный.
Самый частый случай использования 301 редиректа — это перенаправление посетителей с www адреса сайта на вариант без www (www.moonback.ru -> moonback.ru).

Редирект 301 в .htaccess

Большинство сайтов в интернете работают на вэб-сервере Apache, поэтому рассмотрим настройку редиректа 301 в самом массовом универсальном виде. А именно в файле .htaccess. Который расположен в корне вашего сайта.
Для настройки редиректа с www домена на домен без www в код файла .htaccess необходимо добавить нижеследующие строки:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

где,
RewriteCond обозначаем условие, при совпадении с которым будет выполнено правило RewriteRule. С помощью регулярных выражений задаются шаблоны строк.
Метасимволы для задания групп символов или «меток» в шаблоне
^ — метка начала строки,
$ — метка конца строки,
! – отрицание,
\ — экранирующий слеш, позволяет считать следующий за ним метасимвол обычным символом,
. – точка, обозначает любой символ, но только один,
() – группировка.
Модификаторы ставятся после обычных символов, метасимволов или их групп и расширяют возможности использования шаблонов:
? — символ повторяется 0 или 1 раз,
* — Повторяется от 0 до 65536 раз,
+ — Повторяется от 1 до 65536 раз.
Флаги определяют дополнительные опции для данного правила и перечисляются в квадратных скобках через запятую:
NC — (nocase) отключает проверку регистра символов.
R — (redirect) останавливает процесс преобразования и возвращает результат браузеру клиента как редирект на данную страницу (302, MOVED TEMPORARY). С данным флагом можно указать другой код результата, например R=301 возвратит редирект с кодом 301 (MOVED PERMANENTLY).
L — (last) останавливает процесс преобразования, и текущая ссылка считается окончательной.

P.S.

Обратный 301 редирект с домена без www на домен с www будет выглядеть так:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

Использованные источники


 Метки:  

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Технический блог © 2016
SQL - 39 | 0,173 сек. | 7.68 МБ