Ухватить самую суть о редиректах можно здесь.
Индексация неактивных страниц и страниц-дублей неплохо так понижает рейтинг сайта в поисковой выдаче. Поэтому с них пользователя и поисковых ботов направляют на другие – красивые и уникальные – страницы.
Также могут быть перенаправления со страницы с доменом www на её бездоменную версию и наоборот. Или перенаправления с http-протокола на https и обратно. Или перенаправления с /brands/ на /help/ чисто по фану.
Существует два типа перенаправления (при этом для пользователя в их использовании нет никакой разницы):
Постоянный редирект (301) – название говорит само за себя. Это навсегда. Старого адреса больше нет и не будет, страница теперь доступна лишь по новому URL, а значит и поисковики могут убирать устаревшую страницу из выдачи и заменять её новой (той, на которую и идёт перенаправление).
Временный редирект (302) – используется при проведении технических работ с сайтом; для поисковых ботов 302 – это сигнал, что страница будет возвращена на свой старый URL, а потому в выдаче её не следует каким-либо образом менять.
Редиректы настраиваются двумя способами:
Преимущество данного способа – простота настройки (нет необходимости использовать регулярные выражения).
Недостаток – наработки не перенесутся в случае «переезда» сайта.
Плюс этого способа – настроенные редиректы перенесутся с сайтом при переезде.
Минус – относительная сложность. В случае неправильного составления синтаксиса документа сайт попросту обрушится. В случае же некорректного составления регулярных выражений (об этом ниже) сайт не рухнет, но работать будет неадекватно.
Во избежание печальных последствий настоятельно рекомендуется работать с файлом .htaccess через ftp.
В файле .htaccess (находится в корне сайта) прописываются обработчики различных событий.
Прежде всего настраивается перенаправление на собственную страницу 404 – будь то внутренняя ошибка или ошибка со стороны сервера.
ErrorDocument 404 /404.php
Далее прописываются параметры для различных версий php (например, смена кодировки).
И наконец, в разделе mod_rewrite после команды
RewriteEngine on
прописываются собственно редиректы.
Структурно они состоят из RewriteCond (условие, необязательно) и RewriteRule (правило, без него редиректа вообще не будет), обычно эти двое работают в связке.
Символы для регулярных выражений
Символ | Значение |
^ |
начало строки |
$ |
конец строки |
* |
повторение предшествующего символа бесконечное число раз |
+ |
аналогично предыдущему |
. |
замена одного символа |
[ ] |
диапазон значений |
# | комментарий |
\ |
экранирующий символ |
Флаги – дополнительные опции, прописываются в конце правил.
Основные из флагов:
[R] – Redirect, производит процесс остановки изменения URL и возвращает результат
[L] – Last, останавливает формирования URL, строка считается окончательной
[NC] – NoCase, отключает проверку регистра символов
Примеры:
Перенаправление со страницы /page1/ на страницу /page2/:
RewriteRule ^page1 /page2/$1 [R=301,L]
Переход с домена www на без домена www:
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
И ещё один пример:
RewriteRule ^company/info/news/(.*) /company/news/$1 [R=301,L]
# используется для комментариев (указание даты внесения и/или имени вносящего правки). Например:
#0000-12-25 by JC
Проверяют редиректы вручную или с помощью сторонних сервисов.
Перед проверкой рекомендуется провести сброс кэша сайта и браузера.
Для ручной проверки достаточно ввести URL в адресную строку. Если всё сделано правильно, то URL автоматически изменится и страница успешно загрузится.
Для автоматизированной проверки можно использовать, например, сервис http://www.redirect-checker.org/