HTTP 301 Moved Permanently (lub 301 redirect ) to kod odpowiedzi HTTP używany dotrwałego przekierowania adresu URL , to znaczy do wskazania, że bieżące łącza lub rekordy korzystające z adresu URL, dla którego zostały otrzymane, muszą zostać zmienione. Nowy adres URL należy podać w polu „Lokalizacja” zawartym w odpowiedzi. Kod przekierowania 301 jest uważany za najlepszy sposób na uaktualnienie użytkowników z HTTP do HTTPS .
W RFC 2616 definiuje, że:
Prośba klienta:
GET /index.php HTTP/1.1 Host: www.example.orgOdpowiedź serwera:
HTTP/1.1 301 Moved Permanently Location: http://www.example.org/index.aspOto przykład użycia plików .htaccess do przekierowania niezabezpieczonego adresu URL na bezpieczny adres bez „www”:
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]Oto przykład użycia przekierowania PHP
<?php header("HTTP/1.1 301 Moved Permanently"); header("Location: https://example.com/newpage.html"); exit(); ?>Oto przykład równoważnej prostoty dla konfiguracji nginx :
location /old/url/ { return 301 /new/url; }Wyszukiwarki Bing i Google zalecają przekierowanie 301 do zmiany adresu URL strony.