Este artigo aborda como desfazer o redirecionamento 301 nos browsers Firefox e Chrome, e também mostra uma técnica de fazer redirecionamentos através de tags HTML, evitando assim que o programador faça utilização do recurso 301 que possui um sério efeito colateral.
Um recurso muito comum utilizado por desenvolvedores de site é a utilização de redirecionamentos permanentes, conhecidos pelo código HTTP 301, que consiste em redirecionar um domínio inteiro para uma determinada página ou domínio. Este recurso é utilizado quando você registra um domínio novo cuja única função é apontar para uma determinada página em outro domínio.
Exemplo de Situação:
Digamos que exista um vídeo no Youtube com lindas imagens da Pedra da Gávea que seja muito importante para você. Endereços no Youtube normalmente são bem complexos, como por exemplo “https://youtu.be/SXC3XVqTBUE“. Então você deseja encaminhar usuários para esta página de forma mais fácil e para isso cria um domínio chamado “PedraDaGavea.com.br”, cuja única função é levar o usuário para aquela página do Youtube. O que fazer? No provedor de hospedagem você define um redirecionamento permanente (301) levando o domínio “PedraDaGavea.com.br” para a página “https://youtu.be/SXC3XVqTBUE” e seu problema será resolvido.
Porém esta técnica apresenta um sério efeito colateral!
Redirecionamentos permanentes (301) ficam registrados no cache interno do browser do usuário, ou seja, na próxima vez que o usuário digitar “PedraDaGavea.com.br”, o browser não irá fazer os procedimentos de resolução de DNS e irá diretamente para a página redirecionada, no caso do nosso exemplo: “https://youtu.be/SXC3XVqTBUE“.
A princípio pode parecer bom, pois pula toda a etapa de resolução de DNS tornando o redirecionamento super rápido e eficiente, mas aí vem o problema… Digamos que mais para frente você crie outros conteúdos sobre “Pedra da Gávea” e queira dar outra utilização ao seu domínio, ou seja, você quer desfazer o redirecionamento, você não quer mais que o domínio “PedraDaGavea.com.br” aponte para aquele vídeo no Youtube mas sim para outro tipo de conteúdo ou até mesmo um conteúdo próprio.
A essa altura você deve estar pensando: “simples, vou lá no provedor de hospedagem e desfaço o redirecionamento!”. Sim, faz sentido, mas você está lembrando que o redirecionamento ficou gravado no cache dos browsers dos usuários e que os referidos browsers não fazem mais resolução de DNS sobre esse domínio? De fato, uma pessoa que acessou o domíno “PedraDaGavea.com.br” e foi redirecionado, para sempre será redirecionado. O browser não irá mais consultar os registros DNS e com isso jamais irá saber que o redirecionamento foi desfeito.
Solução do Problema:
A única forma de fazer com que o browser do usuário volte a fazer o processo de resolução de nomes de domínio (DNS) é limpando o cache específico para este tipo de situação. No tutorial abaixo eu mostro como fazer a limpeza do cache nos browsers Google Chrome e Firefox. Clique sobre o título de cada um deles para ver o conteúdo.
Como o redirecionamento permanente possui esse tipo de complicação minha recomendação é que ele nunca seja utilizado, uma vez que o desenvolvedor do site não tem como prever o futuro. Em vez disso recomendo para os desenvolvedores de site a utilização de uma das técnicas a seguir:
1. Redirecionamento Temporário – HTML 302 – É feito no servidor da mesma forma que o 301, porém informando código 302. A principal diferença é que, nessa modalidade, o browser não salva o redirecionamento em cache, fazendo assim as consultas às tabelas DNS toda vez que o domínio é solicitado.
2. Redirecionamento via Programação – O desenvolver do site não fará qualquer modificação nas configurações do servidor, invés disso colocará o comando de redirecionamento dentro do código HTML das páginas. No caso do exemplo citado acima, o desenvolvedor colocaria o seguinte código para a página default do domínio “PedraDaGavea.com.br”:
<html>
<head>
<meta http-equiv="redirect" content="1;https://youtu.be/SXC3XVqTBUE" />
</head>
</html>
A sintaxe do parâmetro “content” é a seguinte: <tempo de espera medido em segundos>;<página que será redirecionada>. No caso do exemplo acima a página vai ficar aberta durante 1 segundo e depois vai redirecionar para o Youtube. O tempo de espera pode ser definido como “0” para que o redirecionamento aconteça de forma instantânea.
Este artigo teve o propósito duplo de ajudar tanto usuários quanto desenvolvedores. Espero que não tenha ficado técnico demais para um grupo e nem raso demais para outro grupo. Comente abaixo o que achou.
Excelente artigo Luciano, muito didático e objetivo. Parabéns!
Obrigado!
Parabéns professor Luciano, sempre tirando do sufoco aqueles que precisam.
Obrigado! Conte comigo!
Artigo Top, muito bem explicado. Parabéns.
Obrigado! 😉