Скачать последнюю версию
 
 

Виды редиректов

При разработке сайта, закладывается концепция и формат его ссылок. Удобно, когда URL каждой страницы соотносится со структурой сайта и отображает её место в данной структуре. С течением времени устройство сайта может измениться и взаимосвязь страниц будет происходить по новой схеме. Данная статья расскажет, как правильно перенаправлять пользователей со старых адресов на новые.

Жизненный пример: поначалу на сайте статьи располагались по адресу example.com/category/article. В один прекрасный момент категории решили убрать, а сами статьи расположить по адресу example.com/date/article . Если после такого нововведения не обеспечить работоспособность старых ссылок, сайт ожидают большие неприятности: поисковики начнут пессимизировать его в результатах поиска, обнаружив в своей базе массу битых ссылок. Чтобы этого не произошло, для старых адресов применять редирект на новые.

Полноценный редирект происходит при помощи передачи сервером браузеру специального заголовка Location: с указанием абсолютного или относительного адреса для перехода. Возможна также эмуляция редиректа, когда вместо запрашиваемого документа, браузеру отдается специальная перенаправляющая страница. Содержимое такой страницы обычно включает в себя специальный код, который изменяет содержимое адресной строки. Так, к примеру, поступает anonym.to. Однако можно обойтись и без кода: достаточно отобразить пользователю нужную ссылку с просьбой перейти по ней. Назвать эмуляцию редиректа полноценной нельзя, поскольку поисковики к ней относятся с явным негативом.

На большинстве серверов установить редирект можно двумя способами: через php скрипт или .htaccess файл. Для установки редиректа при помощи php, в нужном месте необходимо написать:

header('Location: url',true,code);

Где url – адрес, куда необходимо перенаправить пользователя, code – код редиректа. После выполнение команды header(), выполнение скрипта лучше прервать конструкцией die;. Об установке редиректа через файл .htaccess хорошо написано на сайте http://htaccess.net.ru.

Если с параметром url все понятно, то код редиректа может вызвать вопрос: «а зачем он нужен?». Поясняю. Код нужен только поисковику: он объясняет ему, с какой целью сервер перенаправляет его в другое место. Посетителям сайта сайта такое пояснение не нужно: переходит – ну и пусть переходит себе (многие даже не замечают редиректа).

На все случаи жизни есть несколько типов редиректов, однако в основном используются только два из них постоянный (301) и временный (302).

  • 300 — Multiple Choices (один из вариантов на выбор). Предназначен для автоматического (иногда ручного) выбора браузером наиболее подходящего пользователю документа. По сути все сводится к выбору браузером документа с нужным языком и/или кодировкой.
  • 301 — Moved Permanently (перемещено навсегда). Часто используемый вид редиректа. Применяется, в том случае, когда адрес документа изменился. Со стороны поисковика это означает, что запрашиваемый ресурс навсегда перемещен и теперь доступен по новому адресу. Используется для склейки страниц и SEO продвижения одного конкретного адреса.
  • 302 — Temporary Redirect (временно перемещено). Такой вид редиректа используют для временного изменения адреса страницы. В этом случае поисковые системы оставляют в своей базе оба адреса и не склеивают их. Многие неопытные веб-мастера, используя редирект, не указывают для него код, и сервер автоматически использует 302й код. Поэтому постоянный редирект на один и тот же адрес с 302м кодом воспринимается поисковиками как 301й.
  • 303 — See Other (запрашиваемый ресурс можно найти по другому адресу). Этот специфический редирект используется в ответ на поисковый запрос, когда результаты поиска состоят всего из одной ссылки. Чтобы не тратить время пользователя, отображая ему страницу с единственным результатом поиска, стоит сразу перенаправить его на нужную страницу. Адрес, переданный в заголовке Location: гарантировано будет загружен используя GET запрос.
  • 305 – Use Proxy (пожалуйста, используйте проксю). Такой вид редиректа указывает, что доступ к запрашиваемому документу может быть получем только через прокси-сервер, адрес которого передается в заголовке Location:.
  • 307 – Temporary Redirect (временный редирект). Этот редирект интересен тем, что браузер перейдет по предложенному адресу сохранив при этом содержимое POST запроса.

Внимательный пользователь заметит, что в перечисленном перечне отсутствуют 304й и 306й редиректы. Это потому что код состояния 304 это вовсе не редирект, а лишь указатель на то, что содержимое страницы не изменилось. А 306й код в настоящее время зарезервирован для дальнейших нужд.

В следующей статье я расскажу зачем нужен и где используется 302й редирект.