HTTP 301
301 Movido Permanentemente é um código de status de resposta HTTP usado para redirecionamento permanente de URL, o que significa que links ou registros que atualmente utilizem a URL da qual a resposta foi recebida devem ser atualizados para a nova. A nova URL deve ser fornecida no campo Location incluído na resposta.
O redirecionamento 301 é considerado uma boa prática de atualização dos usuários, no caso de mudar de HTTP para HTTPS.[1] RFC 2616 estabelece que:
- Se um cliente tem suporte à edição de links, ele deve atualizar todas as referências à URL requisitada.
- A resposta pode ser armazenada em cache.[2]
- A não ser que o método da requisição seja HEAD, a entidade deve conter uma pequena nota em hipertexto com um hiperlink para a(s) nova(s) URL(s).
- Se o código de status 301 é recebido como resposta de uma requisição de qualquer outro tipo que não seja GET ou HEAD, o cliente deve perguntar ao usuário antes de redirecionar.
Exemplo
[editar | editar código-fonte]Requisição do cliente:
GET /index.php HTTP/1.1 Host: www.example.org
Resposta do servidor:
HTTP/1.1 301 Moved Permanently Location: http://www.example.org/index.asp
No exemplo a seguir é utilizado um arquivo .htaccess para redirecionar uma URL insegura para um endereço seguro sem o prefixo "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]
No exemplo a seguir é utilizado um redirecionamento em PHP:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://example.com/newpage.html");
exit();
?>
Isso é igualmente simples em uma configuração nginx:
location /old/url/ { return 301 /new/url; }
Mecanismos de busca
[editar | editar código-fonte]Tanto o Bing quanto o Google recomendam o uso de um redirecionamento 301 para alterar a URL de uma página tal como ela é mostrada nos resultados do mecanismo de pesquisa.[3][4]
Referências
[editar | editar código-fonte]- ↑ «Proteger seu site com HTTPS». support.google.com. Consultado em 30 de janeiro de 2017
- ↑ How long do browsers cache HTTP 301s? - https://stackoverflow.com/questions/9130422/how-long-do-browsers-cache-http-301s
- ↑ Site Move Tool - Bing Webmaster Help & How-to - https://www.bing.com/webmaster/help/how-to-use-the-site-move-tool-bb8f5112
- ↑ 301 redirects - Google Webmaster Tools Help - http://support.google.com/webmasters/bin/answer.py?hl=en&answer=93633