Код состояния 301 протокола HTTP

Материал из Википедии — свободной энциклопедии
(перенаправлено с «HTTP 301»)
Перейти к: навигация, поиск

Код состояния 301 протокола HTTP (HTTP 301) — в протоколе HTTP, код состояния, получаемый в ответ от сервера в ситуации, когда запрошенный ресурс был на постоянной основе перемещён в новое месторасположение, и указывающий на то, что текущие ссылки, использующие данный URL, должны быть обновлены. Адрес нового месторасположения ресурса указывается в поле Location получаемого в ответ заголовка пакета протокола HTTP. В RFC 2616 указано, что:

  • если у клиента есть возможность редактирования ссылки, то ему следует обновить все ссылки на запрашиваемый URL;
  • запрос кэшируется[1];
  • в случае, если метод запроса был не HEAD, то содержимое должно включать в себя небольшое гипертекстовое примечание с гиперссылкой на новый URL;
  • если код состояния 301 был получен в ответ на запрос любого другого типа, кроме GET или HEAD, то клиент должен спросить пользователя о перенаправлении.

Примеры[править | править вики-текст]

Запрос клиента:

GET /index.php HTTP/1.1
Host: www.example.org

Ответ сервера:

HTTP/1.1 301 Moved Permanently 
Location: http://www.example.org/index.asp

Пример использования файла .htaccess для перенаправления на ресурс, работающий на протоколе шифрования SSL:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://example.com/$1 [R,L]

Пример использования перенаправления в PHP:

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://example.com/newpage.html");
exit();
?>

Пример перенаправления для веб-сервера nginx:

location /old/url/ {
   return 301 /new/url;
}

Поисковые системы[править | править вики-текст]

Google рекомендует использовать код состояния 301 для изменения URL страницы так, как она показана в результатах поиска.[2]

Яндекс также рекомендует использовать код состояния 301 при перенаправлении страниц.[3]

Примечания[править | править вики-текст]

  1. How long do browsers cache HTTP 301s?. stackoverflow.com. Проверено 26 ноября 2015.
  2. Change page URLs with 301 redirects - Search Console Help. support.google.com. Проверено 26 ноября 2015.
  3. Обработка редиректов (перенаправлений) — Вебмастер — Яндекс.Помощь. yandex.ru. Проверено 26 ноября 2015.

Ссылки[править | править вики-текст]

См. также[править | править вики-текст]