HTTP 301 - HTTP 301
HTTP |
---|
Metody żądania |
Pola nagłówka |
Kody stanu |
Metody kontroli dostępu do bezpieczeństwa |
Luki w zabezpieczeniach |
Kod stanu odpowiedzi HTTP 301 Przeniesiono na stałe jest używany do trwałego przekierowania, co oznacza, że bieżące łącza lub rekordy korzystające z adresu URL, dla którego otrzymano tę odpowiedź, powinny zostać zaktualizowane. Nowy adres URL należy podać w polu Lokalizacja dołączonym do odpowiedzi. Przekierowanie 301 jest uważane za najlepszą praktykę w przypadku uaktualniania użytkowników z HTTP do HTTPS.
RFC 2616 stwierdza, że:
- Jeśli klient ma możliwości edycji linków, powinien zaktualizować wszystkie odwołania do adresu URL żądania.
- Odpowiedź można zapisać w pamięci podręcznej, chyba że wskazano inaczej.
- O ile metoda żądania nie była HEAD, jednostka powinna zawierać małą notatkę hipertekstową z hiperłączem do nowych adresów URL.
- Jeśli kod stanu 301 zostanie odebrany w odpowiedzi na żądanie innego typu niż GET lub HEAD, klient musi zapytać użytkownika przed przekierowaniem.
Przykład
Żądanie klienta:
GET /index.php HTTP/1.1
Host: www.example.org
Odpowiedź serwera:
HTTP/1.1 301 Moved Permanently
Location: https://www.example.org/index.asp
Oto przykład wykorzystania pliku .htaccess do przekierowania niezabezpieczonego adresu URL na bezpieczny adres bez początkowego „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 Perl CGI.pm :
print redirect("https://example.com/newpage.html");
Oto przykład użycia przekierowania PHP :
<?php
header("Location: https://example.com/newpage.html", true, 301);
exit;
Równie proste dla konfiguracji nginx :
location /old/url/ {
return 301 /new/url/;
}
Oto jeden ze sposobów przekierowania za pomocą Express.js :
app.all("/old/url", (req, res) => {
res.redirect(301, "/new/url");
});
Wyszukiwarki
Zarówno Bing, jak i Google zalecają użycie przekierowania 301 do zmiany adresu URL strony wyświetlanego w wynikach wyszukiwania, pod warunkiem, że ten adres URL ulegnie trwałej zmianie i nie będzie zmieniany w najbliższym czasie.
Zobacz też
Bibliografia
Bibliografia
301 HTTPS