Como funciona o redirecionamento de URL?

Existem muitas formas de se realizar um redirecionamento de domínio ou subdomínio para outra seção do seu site ou para um outro endereço. Redirecionamentos costumam ser realizados por .htaccess, script PHP, meta tags HTML e por JavaScript.

Para que redirecionamentos de URL são usados?

Redirecionamentos de domínio são usados para informar servidores que o conteúdo de um site foi movido de um URL para outro. O passo é necessário quando, por exemplo, o endereço de destino de um link já foi salvo no computador de um usuário ou poderia ocupar uma posição de destaque nos resultados dos mecanismos de busca (SERPs). Nestes casos, o redirecionamento informa ao navegador ou crawler que o conteúdo foi movido e apresenta o link para o novo endereço. Sem que um redirecionamento seja configurado, visitantes podem se deparar com uma página de erro 404 no lugar do conteúdo que estavam procurando.

Principalmente sites comerciais precisam evitar que esse tipo de situação ocorra. Lojas virtuais que oferecem diversos produtos, por exemplo, configuram redirecionamentos constantemente, pois realizam mudanças com frequência. Assim, quando um item não está mais disponível, potenciais clientes são encaminhados a uma página com produtos similares. Redirecionamentos de URL permitem que comércios eletrônicos direcionem o fluxo de visitantes de forma eficaz, minimizando taxas de rejeição.

Ao configurar um redirecionamento de URL, você consegue disponibilizar o mesmo conteúdo em endereços diferentes. Todos estes endereços alternativos são meros redirecionamentos ao domínio desejado, que passa a independer de um URL ou de um caminho específico.

Registre um nome de domínio

Construa sua própria marca com um grande domínio, que inclui SSL e consultor pessoal!

  • Registro privado
  • Suporte 24 horas
  • E-mail

Que tipos de redirecionamento de URL existem?

Redirecionamentos são geralmente divididos em redirecionamentos pelo lado do cliente e redirecionamentos pelo lado do servidor. No redirecionamento de domínio pelo lado do servidor, códigos de status HTTP são transferidos para agentes de usuário (navegadores ou crawlers), o que não ocorre em redirecionamentos pelo lado do cliente. Estes são realizados sem a necessidade de qualquer resposta, o que significa que nenhum código de status é emitido. Por isso, essa segunda opção nem sempre é suportada por todos os agentes de usuário, o que pode resultar em situações inconvenientes, como visitantes permanecendo na página original, não sendo devidamente encaminhados. Problemas como este fazem com que redirecionamentos pelo lado do servidor sejam mais comuns. Recomendamos que soluções pelo lado do cliente só sejam utilizadas quando a opção de redirecionamento de domínio pelo lado do servidor tiver de ser descartada, por motivos técnicos.

Existe também o redirecionamento de URL chamado de transparente ou invisível. Neste tipo de redirecionamento, o URL não muda. No redirecionamento de domínio com mascaramento, por exemplo, o URL exibido ao usuário não é alterado, mesmo que ele tenha sido encaminhado a outro domínio ou que o conteúdo de outra página seja exibido. No entanto, este tipo de redirecionamento pode resultar em dificuldades de indexação e de exibição do URL pelo navegador. Por isso, não recomendamos seu uso, a não ser que limitações o tornem a única opção possível.

Dica

Interessado no passo a passo para configurar um redirecionamento de domínio? Aprenda, com este artigo do IONOS Help Center, como redirecionar um domínio para outro site.

Redirecionamentos pelo lado do servidor

Na maioria dos casos, redirecionamentos de URL são realizados usando-se o arquivo de configuração .htaccessou umscript PHP. Ambos os métodos possibilitam a definição individual do código de status HTTP a ser exibido para o agente de usuário. Isso permite que administradores de sites apontem o redirecionamento de domínio como permanente ou temporário. Oscódigos de status HTTP 301 e 302 são usados nessas situações.

  • 301: Movido permanentemente (Moved permanently): O recurso solicitado passa a ficar permanentemente disponível no URL de redirecionamento, tornando o antigo URL inválido. Para configurá-lo é preciso fazer um redirect 301.

  • 302: Movido temporariamente (Moved temporarily): O recurso solicitado também passa a ficar disponível no URL de redirecionamento, mas, ao contrário do que ocorre no redirect 301, o URL original continua válido.

Se o status HTTP não for definido por você de forma explícita, o servidor web configurará automaticamente o código 302 ao realizar um redirecionamento pelo lado do servidor. Por isso, o melhor a se fazer é inserir manualmente o código de status desejado em cada redirecionamento, reduzindo as chances de que erros de indexação, como URL hijacking, ocorram. Ao contrário do redirect 301, o código de status 302 informa aos crawlers que o URL original deve continuar sendo indexado. Contudo, caso a mudança seja permanente, o endereço que contém o redirecionamento competirá com a página de destino oficial na indexação dos mecanismos de busca.

Redirect .htaccess

O .htaccess é um arquivo de configuração presente em servidores web Apache. Ele é usado para a definição de configurações centrais a nível de diretórios. O arquivo permite que administradores de sites efetuem alterações especificas em diretórios de domínios e respectivos subdiretórios. Uma das funções do .htaccess é redirecionar domínios de endereços individuais para outras URLs, pelo lado do servidor.

Você pode configurar um redirecionamento de URL alterando o código do arquivo .htaccess. Caso este arquivo seja adicionado ao diretório principal juntamente com o trecho abaixo, solicitações de acesso ao domínio oficial serão redirecionadas, pelo lado do servidor, ao domínio www.exemplo.com:

Redirect 301 / http://www.exemplo.com/
apacheconf

A linha de código em questão deve começar com Redirect 301, por determinar o código de status HTTP que o servidor deve emitir. Em seguida, o caminho para o conteúdo redirecionado é apresentado — no nosso exemplo, todo o conteúdo foi redirecionado. O último passo é informar o URL de destino completo do redirecionamento ao agente de usuário (http://www.exemplo.com).

Este método também permite redirecionar arquivos individuais. O código abaixo exemplifica um redirect .htaccess do tipo, de um site para outro:

Redirect 301 /directory/documento-de-exemplo.html http://www.exemplo.com/exemplo.html
apacheconf

Depois de inserir o código de status HTTP 301, o caminho do diretório do arquivo que será permanentemente redirecionado (/diretorio/documento-de-exemplo.html) e o URL do redirecionamento (http://www.exemplo.com/exemplo.html) devem ser adicionados.

O redirecionamento permanente ficaria assim em um servidor Apache com o módulo mod_rewrite ativo:

RewriteEngine On
RewriteRule ^directory/documento-de-exemplo.html$ http://www.exemplo.com/exemplo.html [L,R=301]
apacheconf

Na primeira linha do código, o módulo mod_rewrite do servidor web Apache é acionado com o comando RewriteEngine On. Em seguida, a RewriteRule define o caminho do arquivo de redirecionamento e o endereço de destino. O circunflexo (^) e o cifrão ($) sinalizam o início e o fim do caminho, respectivamente, enquanto a letra L indica a última regra mod_rewrite para a solicitação. R=301 representa o status HTTP 301.

Dica

Acesse nosso artigo especializado em macetes .htaccess. Fizemos uma seleção especial para você. Ainda, aprenda mais sobre mecanismos de reescrita no nosso Digital Guide.

Esteja ciente que, ao configurar um redirecionamento de domínio por .htaccess, entradas incorretas resultarão em consequências graves na operação do site. Como tais alterações entram imediatamente em vigor após serem salvas no arquivo .htaccess, elas devem ser, sempre, cuidadosamente testadas.

Redirecionamentos PHP

Alterar o arquivo .htaccess não é a única forma de se criar um redirecionamento de URL. Ele também pode ser realizado por script PHP (por exemplo, pelo arquivo index.php). O código abaixo exemplifica um redirecionamento permanente para o URL de destino fictício www.exemplo.com:

<?php
header("Status: 301 Moved Permanently");
header("Location: http://www.exemplo.com");
exit;
?>
php

Ao configurar um redirecionamento usando um script PHP, defina o código de status HTTP na função header, presente na segunda linha do código — no nosso exemplo criamos um redirect 301 permanente. Sabendo que redirecionamentos pelo lado do servidor são executados temporariamente por padrão, é preciso que você dê instruções claras ao configurar redirecionamentos permanentes, adicionando o código de status 301. Em redirecionamentos permanentes, o domínio de destino do redirecionamento também deve ser registrado no header. No nosso exemplo, o redirecionamento leva ao endereço http://www.exemplo.com. A função exit, na linha 4, finaliza o script e previne que a linha posterior seja executada. Para que redirecionamentos por PHP funcionem, o bloco de código deve ser posicionado no início da página HTML, o que impedirá o servidor de transferir conteúdo HTML à página de redirecionamento.

Redirecionamentos pelo lado do cliente

Se não for possível configurar um redirecionamento de domínio pelo lado do servidor, por questões técnicas, administradores de sites podem tentar fazê-lo pelo lado do cliente. Tanto a meta tag HTML refresh quanto o JavaScript podem ser usados para essa finalidade. A grande desvantagem de redirecionamentos pelo lado do cliente é a seguinte: servidores não entregam os códigos de status HTTP aos navegadores ou crawlers que realizam a solicitação, o que significa que eles não são informados explicitamente sobre a duração do redirecionamento. Além disso, redirecionamentos pelo lado do cliente não são suportados por todos os agentes de usuário. Assim, existe o risco de nem todos os visitantes serem redirecionados à página correta.

Redirecionamentos pelo lado do cliente podem impactar negativamente a indexação de um site pelos mecanismos de busca. A exclusão explícita da indexação, causada pelo código de status HTTP 301, não ocorre em redirecionamentos configurados pelo lado do cliente. Isso pode fazer com que os dois domínios envolvidos no redirecionamento concorram entre si, afetando o posicionamento em resultados de pesquisa. Ainda, ao contrário de redirecionamentos pelo lado do servidor, que permanecem invisíveis aos usuários, redirecionamentos pelo lado do cliente podem resultar em atrasos perceptivos pelos visitantes.

Redirecionar domínio por meta redirect

Chamado de meta redirect, um redirecionamento pela meta tag HTML refresh pode ser implementado pelo atributo http-equiv. Para utilizar este método, você só precisa de um arquivo HTML e da tag correspondente no cabeçalho. Ainda, para informar seus visitantes sobre o redirecionamento, será preciso que você configure uma notificação no documento HTML, como, por exemplo, “Aguarde, você está sendo redirecionado”. Um redirecionamento de domínio simples, por meta redirect, pode ser estabelecido com o seguinte código:

<meta http-equiv="refresh" content="10; url=http://www.exemplo.com/">
html

O cliente recebe uma solicitação, por meio da meta tag http-equiv="refresh", para redirecionar o domínio. A forma como isso acontece é definida pelo atributo content. No nosso exemplo, o redirecionamento encaminha usuários ao endereço de destino www.exemplo.com após dez segundos.

Redirecionamentos por JavaScript

O JavaScript é uma alternativa simples de se criar redirecionamentos de domínio pelo lado do cliente. No entanto, assim como ocorre em meta redirects, redirecionamentos por JavaScript só devem ser usados em casos específicos, pois esta linguagem não é suportada por todos os navegadores, por questões de segurança. O JavaScript também pode gerar problemas para crawlers e usuários que utilizam extensões NoScript no navegador. O código para se criar um redirecionamento de URL por JavaScript é o seguinte:

<script> 
window.location.replace('http://www.exemplo.com'); 
</script>
html

A segunda linha do código é a mais importante. No nosso exemplo, o objeto window.location é usado como referência ao endereço atual. Já o comando replace instrui o navegador a direcionar o usuário ao domínio de destino entre parênteses (www.exemplo.com).

Este artigo foi útil?
Para melhorar a sua experiência, este site usa cookies. Ao acessar o nosso site, você concorda com nosso uso de cookies. Mais informações
Page top