Como se pode redirecionar um domínio?
Existem várias opções para redirecionar um domínio ou subdomínio para qualquer outra secção do próprio site ou para um endereço externo. Na maioria das vezes, o redirecionamento é feito através do ficheiro .htaccess, do PHP, de tags meta HTML e do JavaScript.
Redirecionar um domínio de um site ativo
As redireções têm como função principal notificar os servidores de que o conteúdo de uma página web foi transferido de um URL para outro. Isto é fundamental se o endereço original receber links de entrada, se tiver sido marcado como favorito no navegador de um utilizador ou se tiver uma posição de destaque nos resultados dos motores de busca. Assim, ao redirecionar um site, está-se a informar o navegador ou o rastreador de que o conteúdo procurado foi transferido, redirecionando-o automaticamente para a nova URL. Caso contrário, os visitantes do site encontrariam a mensagem genérica de erro 404.
Especialmente em projetos web comerciais, é preferível evitar esta situação. A maioria das lojas online oferece uma gama de produtos muito ampla e variada, o que se reflete numa grande quantidade de páginas web individuais. Assim, quando um artigo não está disponível, os potenciais clientes são simplesmente redirecionados para uma nova subpágina com produtos semelhantes. Através do redirecionamento eficiente dos fluxos de visitantes, qualquer projeto web está a minimizar significativamente a taxa de rejeição.
O redirecionamento de uma página web permite disponibilizar o mesmo conteúdo em diferentes URLs, redirecionando todos os endereços alternativos para o domínio pretendido.
Tipos de redirecionamentos de domínios
Em geral, distinguem-se dois tipos de redirecionamentos: os que são realizados a partir do servidor e os baseados no cliente. Para redirecionar um domínio a partir do servidor, é apresentado um código de estado HTTP ao agente do utilizador (seja ele o navegador da Web ou o rastreador). Quando o redirecionamento é baseado no cliente, é feito automaticamente, sem qualquer tipo de notificação. Isto faz com que estas últimas não sejam compatíveis com todos os agentes de utilizador, levando a que alguns utilizadores permaneçam no site original sem serem redirecionados para o novo domínio. É por isso que se recomenda, normalmente, redirecionar uma página web a partir do servidor. As soluções baseadas no cliente devem ser utilizadas apenas quando as limitações técnicas do servidor impedem o redirecionamento.
Outro tipo de redirecionamento consiste no reencaminhamento de um domínio sem alterar a URL, também conhecido como reencaminhamento transparente. Neste caso, a URL apresentada ao utilizador não muda, mesmo que o cliente tenha sido redirecionado para outro domínio e seja apresentado o conteúdo de outra página web. No entanto, uma vez que este tipo de redirecionamento pode causar problemas com a indexação, bem como com a visualização da URL no navegador, não é recomendado.
Deseja configurar o redirecionamento de domínios? No artigo a seguir, no Centro de Ajuda da IONOS, irá aprender como redirecionar um domínio para outro.
Redirecionamento a partir do servidor
Na maioria dos casos, utiliza-se um ficheiro .htaccess ou um script PHP para redirecionar um domínio. A vantagem destes métodos reside no facto de ser possível definir individualmente qual o código de estado HTTP que deve ser apresentado ao agente do utilizador, caracterizando assim os redirecionamentos como temporários ou permanentes. Assim, dois códigos de estado HTTP revelam-se especialmente relevantes: o 301 e o 302:
- 301 – Moved Permanently: a página solicitada pelo agente do utilizador estará disponível de forma permanente na URL redirecionada. A URL anterior será, portanto, inválida.
- 302 – Moved Temporarily: a página solicitada pelo agente do utilizador está temporariamente disponível na nova URL. Ao contrário do redirecionamento 301, o endereço antigo continua a ser válido.
Caso o código de estado HTTP não seja definido especificamente, o servidor apresentará, por predefinição, um código de estado 302, o que nem sempre é o ideal. Por isso, é aconselhável introduzir manualmente todos os códigos de estado para evitar erros de indexação, como o sequestro de URL. Ao contrário do redirecionamento 301, o código de estado 302 indica ao rastreador que a URL original deve continuar a ser indexada. Se permanecer ativa, a URL antiga irá competir com a nova no índice dos motores de busca.
Redirecionamento .htaccess
.htaccess refere-se a um tipo de ficheiro de configuração para o servidor web Apache, através do qual é possível atribuir permissões de acesso a diretórios e ficheiros. Estes ficheiros permitem aos proprietários de páginas web efetuar os ajustes necessários nos diretórios de um domínio ou subdomínio. Uma das funções do ficheiro .htaccess consiste em redirecionar um domínio de um URL para outro a partir do servidor.
Com a ajuda do código no ficheiro .htaccess, pode configurar redirecionamentos de domínio. Assim, ao criar um ficheiro .htaccess com o código seguinte no diretório principal, todas as visitas a partir do URL antigo serão redirecionadas para o domínio www.ejemplo.es:
Redirect 301 / http://www.ejemplo.es/apacheconfA linha de código começa com Redirect 301 e especifica, portanto, a informação que deve ser transmitida a partir do código de estado HTTP do servidor. A parte seguinte do código indica que o URL irá redirecionar o utilizador para os conteúdos que, neste caso, como indica a barra invertida, abrangem todo o site. Por fim, a linha de comando inclui o endereço de destino completo para o qual o agente do utilizador será redirecionado.
Este método também permite redirecionar ficheiros individuais. O código seguinte mostra um redirecionamento de um domínio para outro com o ficheiro .htaccess:
Redirect 301 /directorio/documento-de-ejemplo.html http://www.ejemplo.es/ejemplo.htmlapacheconfApós o código de estado HTTP 301, encontra-se o diretório que será redirecionado de forma permanente (/directorio/documento-de-ejemplo.html), bem como a URL de destino (http://www.ejemplo.es/ejemplo.html).
Num servidor Apache com o módulo mod_rewrite ativado, o redirecionamento permanente de um domínio para outro terá o seguinte aspeto:
RewriteEngine On
RewriteRule ^directorio/documento-de-ejemplo.html$ http://www.ejemplo.es/ejemplo.html [L,R=301]apacheconfA linha 01 do código ativa o módulo mod_rewrite do servidor Apache com o comando RewriteEngine On. A segunda linha começa com RewriteRule, que se encarrega de definir o encaminhamento do ficheiro e indicar o endereço de destino. O símbolo de interposição (^) e o símbolo do dólar marcam o início e o fim do caminho, L designa a última regra do mod_rewrite para pedidos semelhantes. R=301 redireciona com o código de estado HTTP 301.
É necessário ter especial cuidado com a configuração do ficheiro .htaccess ao redirecionar um domínio, pois um erro no código altera automaticamente os ficheiros de configuração do site e pode causar problemas no seu funcionamento. Uma vez que as alterações são aplicadas imediatamente após serem guardadas, é recomendável rever o código e verificar as alterações antes de as guardar.
Redirecionamento com PHP
O redirecionamento de uma página web não é possível apenas através de ficheiros .htaccess. Também é possível utilizando comandos num script PHP (por exemplo, no ficheiro index.php). O código seguinte ilustra um redirecionamento permanente para a URL de destino fictícia www.ejemplo.es.
<?php
header(Status: 301 Moved Permanently);
header(Location: http://www.ejemplo.es);
exit;
?>phpNo redirecionamento com PHP, a função header na linha de código 02 define o código de estado – neste caso, o 301 de redirecionamento permanente. Como, por predefinição, os redirecionamentos do servidor são temporários, é necessário forçar o redirecionamento através do código de estado 301. A URL de destino – neste caso www.ejemplo.esna linha de comando 03 também é definida pela função header. A função exit na linha de comando 04 encerra o script e impede que códigos posteriores sejam executados. Para que o redirecionamento por PHP funcione, o bloco de código deve estar localizado no início, garantindo assim que o servidor não exiba qualquer tipo de conteúdo HTML na página de redirecionamento.
Redirecionamentos baseados no cliente
Caso, devido a problemas técnicos, não seja possível redirecionar uma página web a partir do servidor, pode-se recorrer a uma solução baseada no cliente. Para esse efeito, estão disponíveis as meta tags HTML refresh e o JavaScript correspondente. A desvantagem do redirecionamento de domínios baseado no cliente é que o servidor não emite qualquer código de estado HTTP para o navegador web ou para o rastreador. Isto significa que não é feita qualquer referência explícita ao redirecionamento. Por outro lado, nem todos os agentes de utilizador suportam o redirecionamento baseado no cliente, pelo que existe o risco de alguns dos visitantes da página web não serem redirecionados.
Outra desvantagem é o efeito gerado na indexação dos motores de busca. Ao redirecionar um site a partir do cliente utilizando o código de estado HTTP 301, os motores de busca não desindexarão automaticamente o domínio antigo dos seus resultados, o que significa que o domínio anterior começará a competir no ranking com o domínio de destino. Enquanto os redirecionamentos baseados no cliente implicam sempre um atraso que terá certamente um impacto na taxa de rejeição dos visitantes, os redirecionamentos a partir do servidor (que permanecem invisíveis para o utilizador, com a única diferença da alteração do endereço na barra do navegador) revelam-se muito mais convenientes.
Redirecionar uma página web com a meta tag HTML refresh
O redirecionamento através da metaetiqueta HTML é feito utilizando o atributo http-equiv. Assim, para configurar o redirecionamento, é necessário criar um ficheiro HTML simples com a metaetiqueta correspondente no cabeçalho do código. Para informar os visitantes do site sobre o redirecionamento, é possível criar uma mensagem de texto no documento HTML (por exemplo, «Mudámos de endereço!»). Será redirecionado automaticamente dentro de alguns segundos. Um redirecionamento simples de domínios através da metaetiqueta HTML refresh terá o seguinte aspeto:
<meta http-equiv=refresh content=10; url=http://www.ejemplo.es/>htmlA metaetiqueta http-equiv é responsável por solicitar ao cliente o redirecionamento do domínio. Em seguida, define-se o atributo do conteúdo. No comando anterior, após 10 segundos, o utilizador será redirecionado para a URL de destino www.ejemplo.es.
Redirecionamento com JavaScript
Utilizar JavaScript é outro método simples para redirecionar um URL a partir do cliente. Tal como o redirecionamento com a metaetiqueta refresh, o redirecionamento com JavaScript só deve ser utilizado como último recurso, uma vez que, por motivos de segurança, este script não é suportado por todos os navegadores web. Lembre-se, além disso, de que os redirecionamentos com JavaScript também são um problema para os rastreadores e para os utilizadores que tenham complementos NoScript ativados nos seus navegadores. Um exemplo clássico de redirecionamento através de JavaScript terá o seguinte aspeto:
<script>
window.location.replace('http://www.ejemplo.es);
</script>htmlA importância desta sequência de comandos reside principalmente na linha 02. No exemplo, o objeto window.location é utilizado para se referir ao novo domínio. O comando replace indica ao navegador que deve redirecionar o utilizador para o domínio entre parênteses www.ejemplo.es.