HTTP 301
Код стану 301 протоколу HTTP (HTTP 301) — в протоколі HTTP, код стану, що отримується у відповідь від сервера в ситуації, коли запитаний ресурс був на постійній основі переміщено в нове місце розташування (англ. Moved Permanently), і який вказує на те, що поточні посилання, які використовують даний URL, повинні бути оновлені. Адреса нового місця розташування ресурсу вказується в полі Location одержуваного у відповідь заголовка пакета протоколу HTTP. В RFC 2616 зазначено, що:
- якщо в клієнта є можливість редагування посилання, то йому слід оновити всі посилання на запитуваний URL;
- запит кешується;[1]
- у разі, якщо метод запиту був не HEAD, то вміст має містити невелику гіпертекстову примітку з гіперпосиланням на новий URL;
- якщо код стану 301 був отриманий у відповідь на запит будь-якого іншого типу, крім GET або HEAD, то клієнт повинен запитати користувача про перенаправлення.
HTTP |
---|
|
Методи |
Список заголовків |
Коди стану |
Приклади
Запит клієнта:
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 ^(.*)$ 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]
Перенаправлення з небажаних сайтів в .htaccess
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http://(site.ua%7Csite2.ua%7Csite3.ua)[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;
}
Пошукові системи
Google рекомендує використовувати код стану 301 для зміни URL сторінки так, як вона показана в результатах пошуку.[2] Яндекс також рекомендує використовувати код стану 301 перенаправлення сторінок.[3]
З точки зору SEO, саме 301 редірект повідомляє пошуковим роботам, що потрібно об'єднати дві різні адреси в одну, де основною буде та, на яку й здійснюється перенаправлення.
Пошукові системи також рекомендують налаштовувати даний редірект з додаткових дзеркал на основне, наприклад, коли сайт одночасно доступний за адресами з www і без www або використовує захищений протокол (https), але при цьому також доступний з http.
Див. також
Примітки
- How long do browsers cache HTTP 301s?. stackoverflow.com. Процитовано 26 листопада 2015.
- Change page URLs with 301 redirects - Search Console Help. support.google.com. Процитовано 26 листопада 2015.
- Обработка редиректов (перенаправлений) — Вебмастер — Яндекс.Помощь. yandex.ru. Процитовано 26 листопада 2015.