Перенаправление

Перенаправление (переадресация запроса, редирект – от англ. redirect) — принудительное направление посетителя на иной адрес взамен запрошенного. Причиной обычно бывает временная или постоянная смена адреса запрашиваемого документа или сайта в целом. Также перенаправление применяется для корректной обработки различных форм ввода. Правильно оформленный редирект позволяет избежать проблем при смене «движка» сайта, когда изменяется и формат ссылок.

Перенаправление различается средствами исполнения. Основной вид — переадресация HTTP-заголовком (так называемый серверный редирект). Два дополнительных варианта — редирект Java-скриптом и с помощью мета-тега Refresh — применяются только для браузеров посетителей и не представляют интереса в плане взаимодействия с поисковыми системами.

Виды перенаправления

В протоколе HTTP перенаправления (Redirection) представлены группой с кодами статуса 3XX — от 300 до 399. В RFC 2616 описаны несколько видов перенаправления: постоянный перенос (Moved Permanently), временный перенос (Moved Temporarily в HTTP/1.0 или Temporary Redirect в HTTP/1.1), неоднозначный адрес (Found), замена (See Other). Вся эта группа характерна тем, что клиенту отсылается только заголовок ответа, тело документа не передается.

301 Moved Permanently

Он же «301-й редирект». Получение такого статуса в HTTP-заголовке ответа сервера означает, что запрошенный документ окончательно перенесен на другой адрес. Вместе с этим статусом выдается заголовок Location: URL, указывающий новый адрес документа. Браузер при получении статуса 301 отправляет запрос на адрес, указанный в Location. Поисковый бот, получив такой статус, сохраняет информацию об изменении адреса страницы, но не осуществляет переход. Ссылка на новый адрес страницы будет поставлена в очередь на сканирование в общем порядке, вместе с вновь найденными ссылками.

302 Found

В HTTP/1.0 (и в HTTP/1.1 до RFC 2068 включительно) этот статус назывался Moved Temporarily и означал, что документ временно может быть доступен по разным адресам в зависимости от условий запроса. Вместе со статусом выдавался предпочтительный адрес, но запрошенный адрес оставался действительным.

В RFC 2616 назначение статуса было определено как «управляемое сервером согласование содержимого» (например, может использоваться для разделения стандартной и мобильной версии в зависимости от пользовательского агента). Вместе с этим статусом также выдается заголовок Location с указанием адреса для перехода. Браузер реагирует на него так же, как и на статус 301.

Важно!
Для поискового бота этот статус означает, что документ доступен по другому адресу, но и старый адрес остается актуальным. Получая этот статус, поисковик никогда не «забудет» старый адрес документа и не заменит его новым. Он будет посещать оба адреса, поскольку статус перенаправления не дает оснований считать старый адрес недействительным.

303 See Other

303-й статус используется для обновления страницы POST-формы после отправки данных. Предписывает обязательно использовать GET-запрос страницы, указанной в Location. Таким образом, после отправки формы можно выдать страницу с результатами обработки POST-запроса как по другому адресу, так и по тому же, с которого была получена форма. При этом обязательный GET-формат запроса предотвращает повторную отправку POST-данных браузером, если адрес в Location прежний (когда нужно принудительное обновление страницы с формой).

Этот статус неприемлем для поисковых ботов. Роботы не отправляют POST-запросов, только GET и иногда HEAD. Статус 303 предназначен для выдачи после обработки формы, поэтому документ с таким заголовком робот не должен получать никогда. Получение роботом такого заголовка расценивается как ошибка, адрес для перехода не учитывается и не сохраняется. В общем случае выдача боту страниц со статусом 303 отрицательно сказывается на оценке поисковой системой уровня исполнения сайта.

307 Temporary Redirect

Введен в RFC 2616 для устранения неоднозначности статуса 302, назначение которого было изменено. Этот статус означает, что запрошенный документ временно перемещен на другой адрес и запрошенный URL остается действительным.

Реакция ботов та же, что и в случае 302.
При последующих визитах бот будет сканировать основной (старый) адрес: предполагается, что новый адрес присвоен документу только временно и документ рано или поздно будет возвращен на старый адрес.

Другие статусы 3XX

Остальные статусы редиректа, описанные в редакции RFC 2616, не представляют большого интереса для SEO или сайтостроительства.

Ограниченный интерес для разработчиков представляет статус 304 Not Modified, при котором вообще не порождается перенаправление на какой-либо адрес и не передается поле Location в заголовках. Этот статус выдается в ответ на условные запросы If-Modified-Since или If-None-Match. Он означает, что со времени, указанного в условном запросе, документ не изменился. Теоретически это дает возможность улучшить индексирование сайта, сократив повторную передачу страниц, оставшихся неизменными с предыдущего визита бота. На практике это очень сложно реализовать в большинстве CMS, и такая возможность может использоваться только при сохранении страниц в файловом кеше целиком.

Статус 305 Use Proxy предписывает обращаться к документу только через прокси-сервер, адрес указывается в поле Location.
Статус 306 зарезервирован.

перенаправление.txt · создано: 2010/06/28 06:30 — Zanuda · Последние изменения: 2012/10/13 15:31 — Spinne
Наверх
Driven by DokuWiki