HTTP 301

Материал из Википедии — свободной энциклопедии
Перейти к навигацииПерейти к поиску

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

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

Содержание

Примеры

[править |править код]

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

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

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

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

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

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

RewriteEngine OnRewriteCond %{HTTPS} offRewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]RewriteRule ^(.*)$https://%1/$1 [R=301,L]RewriteCond %{HTTPS} onRewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]RewriteRule ^(.*)$https://%1/$1 [R=301,L]RewriteCond %{SERVER_PORT} 80RewriteRule ^(.*)$https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Перенаправление с нежелательных сайтов в.htaccess

RewriteEngine onRewriteCond %{HTTP_REFERER} ^http://(site.ru%7Csite2.ru%7Csite3.ru) [NC]RewriteRule \.(rar|zip)$http://example.com/ [R,L]

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

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

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

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

Перенаправление с нескольких несуществующих веб-страниц или путей на главную.

location ~* (wp-*|admin*|plugins|install*|components|cli|logs|cache|modules|tmp) {   return 301 $scheme://example.com;}

Перенаправление с нежелательных сайтов. Помещается внутри server {}.

if ($http_referer ~* (site1.ru|site2.com|site3*) ) {   return 301http://example.com/;}

Перенаправление с www.

server {   server_name www.example.com;   return 301http://example.com$request_uri;}

Перенаправление со старого домена на новый.

server {  server_name www.example.com example.com;return 301 $scheme://example.com$request_uri;}

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

[править |править код]

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

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

С точки зрения SEO, именно код состояния 301 сообщает поисковым роботам, что нужно объединить два разных адреса в один, где основным будет тот, на который и происходит перенаправление.

Поисковые системы также рекомендуют настраивать данное перенаправление с дополнительных зеркал на основное, например, когда сайт одновременно доступен по адресам с www и без www или использует защищённый протокол (https), но также доступен по http.

Примечания

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

Ссылки

[править |править код]

См. также

[править |править код]
Перейти к шаблону «HTTP»
Общие понятия
Методы
Заголовки
Коды состояния
Источник —https://ru.wikipedia.org/w/index.php?title=HTTP_301&oldid=146638174
Категория:
Скрытые категории: