HTTP 301
Код состояния HTTP 301 или Moved Permanently (с англ. — «Перемещено навсегда») — стандартный код ответа 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
Примеры перенаправления для веб-сервера Apache:
Использование файла .htaccess для перенаправления на ресурс, работающий на протоколе шифрования SSL:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Перенаправление с нежелательных сайтов в .htaccess
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http://(site.ru%7Csite2.ru%7Csite3.ru) [NC]
RewriteRule \.(rar|zip)$ http://example.com/ [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;
}
Перенаправление с нескольких несуществующих веб-страниц или путей на главную.
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 301 http://example.com/;
}
Перенаправление с www.
server {
server_name www.example.com;
return 301 http://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.
Примечания
- ↑ How long do browsers cache HTTP 301s? stackoverflow.com. Дата обращения: 26 ноября 2015. Архивировано 27 января 2016 года.
- ↑ Change page URLs with 301 redirects - Search Console Help. support.google.com. Дата обращения: 26 ноября 2015. Архивировано 24 июля 2017 года.
- ↑ Обработка редиректов (перенаправлений) — Вебмастер — Яндекс.Помощь. yandex.ru. Дата обращения: 26 ноября 2015. Архивировано 7 апреля 2017 года.
Ссылки
См. также
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.