Код состояния HTTP-ответа 301 Moved Permanently используется для постоянного перенаправления, что означает, что текущие ссылки или записи, использующие URL-адрес, для которого получен этот ответ, должны быть обновлены. Новый URL-адрес должен быть указан в поле Location, включенном в ответ. Редирект 301 считается лучшим методом обновления пользователей с HTTP на HTTPS.
RFC 2616 [1] утверждает, что:
- Если у клиента есть возможности редактирования ссылок, он должен обновить все ссылки на URL-адрес запроса.
- Ответ кэшируется, если не указано иное.
- Если метод запроса не был HEAD, объект должен содержать небольшую гипертекстовую заметку с гиперссылкой на новый URL-адрес.
- Если код состояния 301 получен в ответ на запрос любого типа, кроме GET или HEAD, клиент должен спросить пользователя перед перенаправлением.
Пример
Запрос клиента:
GET /index.php HTTP / 1.1 Хост : www.example.org
Ответ сервера:
HTTP / 1.1 301 перемещен навсегда Расположение : 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} на 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 :
перенаправление печати ( "https://example.com/newpage.html" );
Вот пример использования перенаправления PHP :
phpзаголовок ( "Location: https://example.com/newpage.html" , true , 301 );выход ;
Эквивалентно просто для конфигурации nginx :
местоположение / старый / URL / { возврат 301 / новый / URL / ; }
Вот один из способов перенаправления с помощью Express.js :
приложение . all ( "/ old / url" , ( req , res ) => { res . redirect ( 301 , "/ new / url" ); });
Поисковые системы
И Bing, и Google рекомендуют использовать переадресацию 301 для изменения URL-адреса страницы, отображаемой в результатах поисковой системы, при условии, что этот URL-адрес будет постоянно изменяться и не подлежит изменению в ближайшее время. [2] [3]
Смотрите также
Рекомендации
- ^ Филдинг и др. (1999-06). «10.3.2 301 перемещен навсегда». RFC 2616, стр. 61. IETF, июнь 1999 г. Получено с https://tools.ietf.org/html/rfc2616#section-10.3.2 .
- ^ Инструмент перемещения сайта - Справка и инструкции для веб-мастеров Bing - https://www.bing.com/webmaster/help/how-to-use-the-site-move-tool-bb8f5112
- ^ 301 переадресация - Справка Инструментов Google для веб-мастеров - https://support.google.com/webmasters/bin/answer.py?hl=ru&answer=93633
Библиография
301 HTTPS