HTTP 301

Код стану 301 протоколу HTTP (HTTP 301) — в протоколі HTTP, код стану, що отримується у відповідь від сервера в ситуації, коли запитаний ресурс був на постійній основі переміщено в нове місце розташування (англ. Moved Permanently), і який вказує на те, що поточні посилання, які використовують даний 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 ^(.*)$ 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.

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

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

Посилання[ред. | ред. код]