Existem muitas formas de se realizar um re­di­re­ci­o­na­mento de domínio ou sub­do­mí­nio para outra seção do seu site ou para um outro endereço. Re­di­re­ci­o­na­men­tos costumam ser re­a­li­za­dos por .htaccess, script PHP, meta tags HTML e por Ja­vaS­cript.

Para que re­di­re­ci­o­na­men­tos de URL são usados?

Re­di­re­ci­o­na­men­tos de domínio são usados para informar ser­vi­do­res que o conteúdo de um site foi movido de um URL para outro. O passo é ne­ces­sá­rio quando, por exemplo, o endereço de destino de um link já foi salvo no com­pu­ta­dor de um usuário ou poderia ocupar uma posição de destaque nos re­sul­ta­dos dos me­ca­nis­mos de busca (SERPs). Nestes casos, o re­di­re­ci­o­na­mento informa ao navegador ou crawler que o conteúdo foi movido e apresenta o link para o novo endereço. Sem que um re­di­re­ci­o­na­mento seja con­fi­gu­rado, vi­si­tan­tes podem se deparar com uma página de erro 404 no lugar do conteúdo que estavam pro­cu­rando.

Prin­ci­pal­mente sites co­mer­ci­ais precisam evitar que esse tipo de situação ocorra. Lojas virtuais que oferecem diversos produtos, por exemplo, con­fi­gu­ram re­di­re­ci­o­na­men­tos cons­tan­te­mente, pois realizam mudanças com frequên­cia. Assim, quando um item não está mais dis­po­ní­vel, po­ten­ci­ais clientes são en­ca­mi­nha­dos a uma página com produtos similares. Re­di­re­ci­o­na­men­tos de URL permitem que comércios ele­trô­ni­cos di­re­ci­o­nem o fluxo de vi­si­tan­tes de forma eficaz, mi­ni­mi­zando taxas de rejeição.

Ao con­fi­gu­rar um re­di­re­ci­o­na­mento de URL, você consegue dis­po­ni­bi­li­zar o mesmo conteúdo em endereços di­fe­ren­tes. Todos estes endereços al­ter­na­ti­vos são meros re­di­re­ci­o­na­men­tos ao domínio desejado, que passa a in­de­pen­der de um URL ou de um caminho es­pe­cí­fico.

Construa sua marca com um ótimo domínio
Registre um nome de domínio
  • SSL Wildcard grátis para mais segurança
  • Registro privado grátis para mais pri­va­ci­dade
  • Domain Connect grátis para con­fi­gu­rar DNS fácil

Que tipos de re­di­re­ci­o­na­mento de URL existem?

Re­di­re­ci­o­na­men­tos são ge­ral­mente divididos em re­di­re­ci­o­na­men­tos pelo lado do cliente e re­di­re­ci­o­na­men­tos pelo lado do servidor. No re­di­re­ci­o­na­mento de domínio pelo lado do servidor, códigos de status HTTP são trans­fe­ri­dos para agentes de usuário (na­ve­ga­do­res ou crawlers), o que não ocorre em re­di­re­ci­o­na­men­tos pelo lado do cliente. Estes são re­a­li­za­dos sem a ne­ces­si­dade 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 in­con­ve­ni­en­tes, como vi­si­tan­tes per­ma­ne­cendo na página original, não sendo de­vi­da­mente en­ca­mi­nha­dos. Problemas como este fazem com que re­di­re­ci­o­na­men­tos pelo lado do servidor sejam mais comuns. Re­co­men­da­mos que soluções pelo lado do cliente só sejam uti­li­za­das quando a opção de re­di­re­ci­o­na­mento de domínio pelo lado do servidor tiver de ser des­car­tada, por motivos técnicos.

Existe também o re­di­re­ci­o­na­mento de URL chamado de trans­pa­rente ou invisível. Neste tipo de re­di­re­ci­o­na­mento, o URL não muda. No re­di­re­ci­o­na­mento de domínio com mas­ca­ra­mento, por exemplo, o URL exibido ao usuário não é alterado, mesmo que ele tenha sido en­ca­mi­nhado a outro domínio ou que o conteúdo de outra página seja exibido. No entanto, este tipo de re­di­re­ci­o­na­mento pode resultar em di­fi­cul­da­des de indexação e de exibição do URL pelo navegador. Por isso, não re­co­men­da­mos seu uso, a não ser que li­mi­ta­ções o tornem a única opção possível.

Dica

In­te­res­sado no passo a passo para con­fi­gu­rar um re­di­re­ci­o­na­mento de domínio? Aprenda, com este artigo do IONOS Help Center, como re­di­re­ci­o­nar um domínio para outro site.

Re­di­re­ci­o­na­men­tos pelo lado do servidor

Na maioria dos casos, re­di­re­ci­o­na­men­tos de URL são re­a­li­za­dos usando-se o arquivo de con­fi­gu­ra­ção .htaccessou umscript PHP. Ambos os métodos pos­si­bi­li­tam a definição in­di­vi­dual do código de status HTTP a ser exibido para o agente de usuário. Isso permite que ad­mi­nis­tra­do­res de sites apontem o re­di­re­ci­o­na­mento de domínio como per­ma­nente ou tem­po­rá­rio. Oscódigos de status HTTP 301 e 302 são usados nessas situações.

  • 301: Movido per­ma­nen­te­mente (Moved per­ma­nen­tly): O recurso so­li­ci­tado passa a ficar per­ma­nen­te­mente dis­po­ní­vel no URL de re­di­re­ci­o­na­mento, tornando o antigo URL inválido. Para configurá-lo é preciso fazer um redirect 301.

  • 302: Movido tem­po­ra­ri­a­mente (Moved tem­po­ra­rily): O recurso so­li­ci­tado também passa a ficar dis­po­ní­vel no URL de re­di­re­ci­o­na­mento, 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 con­fi­gu­rará au­to­ma­ti­ca­mente o código 302 ao realizar um re­di­re­ci­o­na­mento pelo lado do servidor. Por isso, o melhor a se fazer é inserir ma­nu­al­mente o código de status desejado em cada re­di­re­ci­o­na­mento, 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 per­ma­nente, o endereço que contém o re­di­re­ci­o­na­mento competirá com a página de destino oficial na indexação dos me­ca­nis­mos de busca.

Redirect .htaccess

O .htaccess é um arquivo de con­fi­gu­ra­ção presente em ser­vi­do­res web Apache. Ele é usado para a definição de con­fi­gu­ra­ções centrais a nível de di­re­tó­rios. O arquivo permite que ad­mi­nis­tra­do­res de sites efetuem al­te­ra­ções es­pe­ci­fi­cas em di­re­tó­rios de domínios e res­pec­ti­vos sub­di­re­tó­rios. Uma das funções do .htaccess é re­di­re­ci­o­nar domínios de endereços in­di­vi­du­ais para outras URLs, pelo lado do servidor.

Você pode con­fi­gu­rar um re­di­re­ci­o­na­mento de URL alterando o código do arquivo .htaccess. Caso este arquivo seja adi­ci­o­nado ao diretório principal jun­ta­mente com o trecho abaixo, so­li­ci­ta­ções de acesso ao domínio oficial serão re­di­re­ci­o­na­das, pelo lado do servidor, ao domínio www.exemplo.com:

Redirect 301 / http://www.exemplo.com/
apa­che­conf

A linha de código em questão deve começar com Redirect 301, por de­ter­mi­nar o código de status HTTP que o servidor deve emitir. Em seguida, o caminho para o conteúdo re­di­re­ci­o­nado é apre­sen­tado — no nosso exemplo, todo o conteúdo foi re­di­re­ci­o­nado. O último passo é informar o URL de destino completo do re­di­re­ci­o­na­mento ao agente de usuário (http://www.exemplo.com).

Este método também permite re­di­re­ci­o­nar arquivos in­di­vi­du­ais. O código abaixo exem­pli­fica um redirect .htaccess do tipo, de um site para outro:

Redirect 301 /directory/documento-de-exemplo.html http://www.exemplo.com/exemplo.html
apa­che­conf

Depois de inserir o código de status HTTP 301, o caminho do diretório do arquivo que será per­ma­nen­te­mente re­di­re­ci­o­nado (/diretorio/documento-de-exemplo.html) e o URL do re­di­re­ci­o­na­mento (http://www.exemplo.com/exemplo.html) devem ser adi­ci­o­na­dos.

O re­di­re­ci­o­na­mento per­ma­nente 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]
apa­che­conf

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 re­di­re­ci­o­na­mento e o endereço de destino. O cir­cun­flexo (^) e o cifrão ($) sinalizam o início e o fim do caminho, res­pec­ti­va­mente, enquanto a letra L indica a última regra mod_rewrite para a so­li­ci­ta­ção. R=301 re­pre­senta o status HTTP 301.

Esteja ciente que, ao con­fi­gu­rar um re­di­re­ci­o­na­mento de domínio por .htaccess, entradas in­cor­re­tas re­sul­ta­rão em con­sequên­cias graves na operação do site. Como tais al­te­ra­ções entram ime­di­a­ta­mente em vigor após serem salvas no arquivo .htaccess, elas devem ser, sempre, cui­da­do­sa­mente testadas.

Re­di­re­ci­o­na­men­tos PHP

Alterar o arquivo .htaccess não é a única forma de se criar um re­di­re­ci­o­na­mento de URL. Ele também pode ser realizado por script PHP (por exemplo, pelo arquivo index.php). O código abaixo exem­pli­fica um re­di­re­ci­o­na­mento per­ma­nente 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 con­fi­gu­rar um re­di­re­ci­o­na­mento 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 per­ma­nente. Sabendo que re­di­re­ci­o­na­men­tos pelo lado do servidor são exe­cu­ta­dos tem­po­ra­ri­a­mente por padrão, é preciso que você dê ins­tru­ções claras ao con­fi­gu­rar re­di­re­ci­o­na­men­tos per­ma­nen­tes, adi­ci­o­nando o código de status 301. Em re­di­re­ci­o­na­men­tos per­ma­nen­tes, o domínio de destino do re­di­re­ci­o­na­mento também deve ser re­gis­trado no header. No nosso exemplo, o re­di­re­ci­o­na­mento 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 re­di­re­ci­o­na­men­tos por PHP funcionem, o bloco de código deve ser po­si­ci­o­nado no início da página HTML, o que impedirá o servidor de trans­fe­rir conteúdo HTML à página de re­di­re­ci­o­na­mento.

Re­di­re­ci­o­na­men­tos pelo lado do cliente

Se não for possível con­fi­gu­rar um re­di­re­ci­o­na­mento de domínio pelo lado do servidor, por questões técnicas, ad­mi­nis­tra­do­res de sites podem tentar fazê-lo pelo lado do cliente. Tanto a meta tag HTML refresh quanto o Ja­vaS­cript podem ser usados para essa fi­na­li­dade. A grande des­van­ta­gem de re­di­re­ci­o­na­men­tos pelo lado do cliente é a seguinte: ser­vi­do­res não entregam os códigos de status HTTP aos na­ve­ga­do­res ou crawlers que realizam a so­li­ci­ta­ção, o que significa que eles não são in­for­ma­dos ex­pli­ci­ta­mente sobre a duração do re­di­re­ci­o­na­mento. Além disso, re­di­re­ci­o­na­men­tos pelo lado do cliente não são su­por­ta­dos por todos os agentes de usuário. Assim, existe o risco de nem todos os vi­si­tan­tes serem re­di­re­ci­o­na­dos à página correta.

Re­di­re­ci­o­na­men­tos pelo lado do cliente podem impactar ne­ga­ti­va­mente a indexação de um site pelos me­ca­nis­mos de busca. A exclusão explícita da indexação, causada pelo código de status HTTP 301, não ocorre em re­di­re­ci­o­na­men­tos con­fi­gu­ra­dos pelo lado do cliente. Isso pode fazer com que os dois domínios en­vol­vi­dos no re­di­re­ci­o­na­mento concorram entre si, afetando o po­si­ci­o­na­mento em re­sul­ta­dos de pesquisa. Ainda, ao contrário de re­di­re­ci­o­na­men­tos pelo lado do servidor, que per­ma­ne­cem in­vi­sí­veis aos usuários, re­di­re­ci­o­na­men­tos pelo lado do cliente podem resultar em atrasos per­cep­ti­vos pelos vi­si­tan­tes.

Re­di­re­ci­o­nar domínio por meta redirect

Chamado de meta redirect, um re­di­re­ci­o­na­mento pela meta tag HTML refresh pode ser im­ple­men­tado pelo atributo http-equiv. Para utilizar este método, você só precisa de um arquivo HTML e da tag cor­res­pon­dente no cabeçalho. Ainda, para informar seus vi­si­tan­tes sobre o re­di­re­ci­o­na­mento, será preciso que você configure uma no­ti­fi­ca­ção no documento HTML, como, por exemplo, “Aguarde, você está sendo re­di­re­ci­o­nado”. Um re­di­re­ci­o­na­mento de domínio simples, por meta redirect, pode ser es­ta­be­le­cido com o seguinte código:

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

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

Re­di­re­ci­o­na­men­tos por Ja­vaS­cript

O Ja­vaS­cript é uma al­ter­na­tiva simples de se criar re­di­re­ci­o­na­men­tos de domínio pelo lado do cliente. No entanto, assim como ocorre em meta redirects, re­di­re­ci­o­na­men­tos por Ja­vaS­cript só devem ser usados em casos es­pe­cí­fi­cos, pois esta linguagem não é suportada por todos os na­ve­ga­do­res, por questões de segurança. O Ja­vaS­cript também pode gerar problemas para crawlers e usuários que utilizam extensões NoScript no navegador. O código para se criar um re­di­re­ci­o­na­mento de URL por Ja­vaS­cript é o seguinte:

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

A segunda linha do código é a mais im­por­tante. No nosso exemplo, o objeto window.location é usado como re­fe­rên­cia ao endereço atual. Já o comando replace instrui o navegador a di­re­ci­o­nar o usuário ao domínio de destino entre pa­rên­te­ses (www.exemplo.com).

Consulta de Domínio
Ir para o menu principal