Код стану 301 протоколу HTTP (HTTP 301) — в протоколі HTTP, код стану, що отримується у відповідь від сервера в ситуації, коли запитаний ресурс був на постійній основі переміщено в нове місце розташування (), і який вказує на те, що поточні посилання, які використовують даний URL, повинні бути оновлені. Адреса нового місця розташування ресурсу вказується в полі Location одержуваного у відповідь заголовка пакета протоколу HTTP. В 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: 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 сторінки так, як вона показана в результатах пошуку. Яндекс також рекомендує використовувати код стану 301 перенаправлення сторінок.
З точки зору SEO, саме 301 редірект повідомляє пошуковим роботам, що потрібно об'єднати дві різні адреси в одну, де основною буде та, на яку й здійснюється перенаправлення.
Пошукові системи також рекомендують налаштовувати даний редірект з додаткових дзеркал на основне, наприклад, коли сайт одночасно доступний за адресами з www і без www або використовує захищений протокол (https), але при цьому також доступний з http.
301 редирект візуально виглядає як просте перезавантаження сторінки, а на справді за цим стоїть - перехід з одного URL на інший із втратою даних аналітики, джерела переходу, міток. Відповідно, якщо на сайті є 301 редиректи та користувачі здійснюють переходи по них, то аналітика недоотримує дані про джерела конверсій та показники ефективності реклами знижуються.
Див. також Список кодів стану HTTP Список заголовків HTTP
Примітки
Посилання RFC 2616 Що таке редірект і як його прописати.