HTTP 301 - HTTP 301

Код состояния HTTP-ответа 301 Moved Permanently используется для постоянного перенаправления, что означает, что текущие ссылки или записи, использующие URL-адрес, для которого получен этот ответ, должны быть обновлены. Новый URL-адрес должен быть указан в поле Location, включенном в ответ. Редирект 301 считается лучшим методом обновления пользователей с HTTP на HTTPS.

RFC 2616 утверждает, что:

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

Пример

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

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

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

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

Вот пример использования файла .htaccess для перенаправления небезопасного URL-адреса на безопасный адрес без начального «www»:

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]

Вот пример использования Perl CGI.pm :

print redirect("https://example.com/newpage.html");

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

<?php
header("Location: https://example.com/newpage.html", true, 301);
exit;

Эквивалентно просто для конфигурации nginx :

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

Вот один из способов перенаправления с помощью Express.js :

app.all("/old/url", (req, res) => {
    res.redirect(301, "/new/url");
});

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

И Bing, и Google рекомендуют использовать переадресацию 301 для изменения URL-адреса страницы, отображаемой в результатах поисковой системы, при условии, что этот URL-адрес будет постоянно изменяться и не подлежит изменению в ближайшее время.

Смотрите также

Рекомендации

Библиография

301 HTTPS