Код состояния 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: www.example.org/index.asp

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

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

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ %1/$1 [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ %1/$1 [R=301,L]
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ example.com/$1 [R,L]
Перенаправление с нежелательных сайтов в .htaccess
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^(site.ru|site2.ru|site3.ru) [NC]
RewriteRule \.(rar|zip)$ example.com/ [R,L]

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

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

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

Перенаправление с вебстраницы.

location /old/url/ {
   return 301 /new/url;
}
Перенаправление с нежелательных сайтов. Помещается внутри server {}.
if ($http_referer ~* (site1.ru|site2.com|site3*) ) {
   return 301 example.com/;
}
Перенаправление с www.
server {
   server_name www.example.com;
   return 301 example.com$request_uri;
}

Поисковые системы

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

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

Напишите отзыв о статье "Код состояния 301 протокола HTTP"

Примечания

  1. [stackoverflow.com/questions/9130422/how-long-do-browsers-cache-http-301s How long do browsers cache HTTP 301s?]. stackoverflow.com. Проверено 26 ноября 2015.
  2. [support.google.com/webmasters/answer/93633?hl=en Change page URLs with 301 redirects - Search Console Help]. support.google.com. Проверено 26 ноября 2015.
  3. [yandex.ru/support/webmaster/robot-workings/managing-redirects.xml Обработка редиректов (перенаправлений) — Вебмастер — Яндекс.Помощь]. yandex.ru. Проверено 26 ноября 2015.

Ссылки

См. также

Отрывок, характеризующий Код состояния 301 протокола HTTP

– Как старички пороптали, много вас начальства…
– Разговаривать?.. Бунт!.. Разбойники! Изменники! – бессмысленно, не своим голосом завопил Ростов, хватая за юрот Карпа. – Вяжи его, вяжи! – кричал он, хотя некому было вязать его, кроме Лаврушки и Алпатыча.
Лаврушка, однако, подбежал к Карпу и схватил его сзади за руки.
– Прикажете наших из под горы кликнуть? – крикнул он.
Алпатыч обратился к мужикам, вызывая двоих по именам, чтобы вязать Карпа. Мужики покорно вышли из толпы и стали распоясываться.
– Староста где? – кричал Ростов.
Дрон, с нахмуренным и бледным лицом, вышел из толпы.
– Ты староста? Вязать, Лаврушка! – кричал Ростов, как будто и это приказание не могло встретить препятствий. И действительно, еще два мужика стали вязать Дрона, который, как бы помогая им, снял с себя кушан и подал им.
– А вы все слушайте меня, – Ростов обратился к мужикам: – Сейчас марш по домам, и чтобы голоса вашего я не слыхал.
– Что ж, мы никакой обиды не делали. Мы только, значит, по глупости. Только вздор наделали… Я же сказывал, что непорядки, – послышались голоса, упрекавшие друг друга.
– Вот я же вам говорил, – сказал Алпатыч, вступая в свои права. – Нехорошо, ребята!
– Глупость наша, Яков Алпатыч, – отвечали голоса, и толпа тотчас же стала расходиться и рассыпаться по деревне.
Связанных двух мужиков повели на барский двор. Два пьяные мужика шли за ними.
– Эх, посмотрю я на тебя! – говорил один из них, обращаясь к Карпу.
– Разве можно так с господами говорить? Ты думал что?
– Дурак, – подтверждал другой, – право, дурак!
Через два часа подводы стояли на дворе богучаровского дома. Мужики оживленно выносили и укладывали на подводы господские вещи, и Дрон, по желанию княжны Марьи выпущенный из рундука, куда его заперли, стоя на дворе, распоряжался мужиками.
– Ты ее так дурно не клади, – говорил один из мужиков, высокий человек с круглым улыбающимся лицом, принимая из рук горничной шкатулку. – Она ведь тоже денег стоит. Что же ты ее так то вот бросишь или пол веревку – а она потрется. Я так не люблю. А чтоб все честно, по закону было. Вот так то под рогожку, да сенцом прикрой, вот и важно. Любо!
– Ишь книг то, книг, – сказал другой мужик, выносивший библиотечные шкафы князя Андрея. – Ты не цепляй! А грузно, ребята, книги здоровые!
– Да, писали, не гуляли! – значительно подмигнув, сказал высокий круглолицый мужик, указывая на толстые лексиконы, лежавшие сверху.

Ростов, не желая навязывать свое знакомство княжне, не пошел к ней, а остался в деревне, ожидая ее выезда. Дождавшись выезда экипажей княжны Марьи из дома, Ростов сел верхом и до пути, занятого нашими войсками, в двенадцати верстах от Богучарова, верхом провожал ее. В Янкове, на постоялом дворе, он простился с нею почтительно, в первый раз позволив себе поцеловать ее руку.