Redirecionamento via htaccess

Fazer redirecionamento via htaccess pode ser uma dor de cabeça para quem está começando a entender o que é o arquivo e como ele funciona. Um simples erro e o site fica fora do ar.

Neste artigo, eu preparei uma série de exemplos de redirecionamentos usando o arquivo .htaccess e a explicação de cada linha de código. Tudo para você não errar na hora de começar seus redirecionamentos.

Video: Como Criar Um Redirecionamento no htaccess

Introdução

Eu já tenho um vídeo explicando o que é o arquivo .htaccess do Apache e como ele funciona. Recomendo que você assista esse conteúdo antes de prosseguir. Você não vai obter o redirecionamento desejado caso não compreenda o que é o arquivo.

O que é um redirecionamento?

Um redirecionamento é simplesmente encaminhar um determinado endereço para outro. Pode ser um domínio antigo para um novo. Apenas uma página, um subdomínio ou diretório. Depende do que você precisa.

Quando a pessoa acessar um endereço que tenha um redirecionamento, o navegador irá entender o comando e processar a requisição, ou seja, redirecionar o usuário para o novo link (endereço).

Todo servidor é compatível com redirecionamentos?

A maioria! Mas, para os redirecionamentos que vou ensinar a seguir, o servidor precisa ser o Apache e ter o mod_rewrite instalado. Praticamente todos os provedores oferecem o recurso, uma vez que é muito utilizado. Caso você não saiba dessa disponibilidade no seu plano, contate o suporte do seu provedor.

PS: No iConectado Host, todos os planos possuem o mod_rewrite instalado.

Flags e Símbolos do Mod Rewrite

Os flags modificam as regras do rewrite (RewriteRule). Confira abaixo quatro exemplos que ajudarão você a compreender os códigos que usaremos:

  • [F]: Significa Forbidden, fazem o servidor retornar um erro 403 Forbidden;
  • [L]: Significa Last, significam que se aquela condição for válida as condições abaixo não serão processadas;
  • [R]: Significa Redirect, é responsável por redirecionar o site para a URL especificada;
  • [NC]: Significa no case-sensitive, ou seja, meusite.com é igual a MEUSITE.COM.

Além dos flags, temos os símbolos:

  • %{HTTP_HOST} significa a url digitada;
  • ^ significa início da string;
  • ^(.*)$ significa quaisquer caracteres. Este símbolo irá substituir o valor por outro, na hora que for recebida a requisição. Exemplo: meusite.com/$1 poderá ser meusite.com/qualquer-pagina/.

Redirecionamento via htaccess

Agora que você já sabe o que é o arquivo do Apache, seus flags e símbolos, está na hora de começar. Vamos ver abaixo os exemplos de redirecionamento via htaccess:

Redirecionamento de http para https

O comando abaixo irá redirecionar todo o acesso do endereço http://meusite.com/ para

# Redireciona de http para https
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301]
</IfModule>

Obs.: É necessário ter um certificado SSL válido e instalado no domínio para que o redirecionamento funcione corretamente. Recomendo desativar plugins de redirecionamento de SSL no WordPress. Pode causar loops e tirar o site do ar.

Redirecionamento de URL com ou sem o WWW

Abaixo, você terá dois códigos, use apenas 1, para redirecionar o seu domínio e garantir que todos possam acessar, usando o www. ou sem.

Redirecionamento sem WWW para com WWW

O comando a seguir irá redirecionar o seu endereço meusite.com para www.meusite.com

# Redireciona domínio sem o www para endereço com o www
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^seusite.com [NC]
RewriteRule ^(.*)$ http://www.meusite.com/$1 [L,R=301]
</IfModule>

Redirecionamento com WWW para sem WWW

O comando abaixo irá redirecionar o seu endereço www.meusite.com para meusite.com

# Redireciona domínio com o www para endereço sem o www
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.meusite.com [NC]
RewriteRule ^(.*)$ http://meusite.com/$1 [L,R=301]
</IfModule>

Redirecionamento de Domínio para Subdomínio

O código abaixo redireciona o seu domínio para um subdomínio. Exemplo: meusite.com para subdominio.meusite.com.

# Redireciona Domínio para um Subdomínio
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^meusite.com [NC]
RewriteRule ^(.*)$ http://subdominio.meusite.com/$1 [L,R=301]
</IfModule>

O código abaixo redireciona o seu Subdomínio para um Domínio. Exemplo: blog.meusite.com para meusite.com.

Redirecionamento de Subdomínio para Domínio

# Redireciona Subdomínio para um Domínio
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^subdominio.meusite.com [NC]
RewriteRule ^(.*)$ http://meusite.com/$1 [L,R=301]
</IfModule>

Redirecionar domínio para outro

O comando abaixo faz o redirecionamento de um domínio para outro. Este é o código que você deve usar quando quer passar a autoridade do domínio antigo para o novo.

# Redireciona domínio antigo para novo domínio
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^meuantigosite.com [NC]
RewriteRule ^(.*)$  [L,R=301]
</IfModule>

Observações sobre os redirecionamentos

Você teve acesso a diversos códigos para fazer o redirecionamento via htaccess, mas antes de sair por ai copiando e colando os códigos, peço que siga essas dicas e observações:

  • Substitua o nome meusite.com pelo endereço real do seu domínio e depois insira o código no .htaccess;
  • Respeite o uso de maiúsculas e minúsculas no código;
  • Sempre que fazer um redirecionamento, limpe completamente o cache do seu navegador para fazer testes. Em alguns casos o redirecionamento está correto, mas não funciona devido ao histórico do browser.
  • Use o código 301 quando você não pretende mudar o redirecionamento e o 302 quando você planeja desfazer o redirecionamento em breve.
  • Verifique os códigos que você já possui no .htaccess antes de inserir novos. Pode ser que o código já exista.
  • Não faça redirecionamentos conflitantes. Exemplo: Redirecionar um Domínio para Subdomínio e depois querer devolver a visita par ao meu endereço. O navegador irá acusar loop de redirecionamento e o site sairá do ar.

Conclusão

Agora você já sabe fazer um redirecionamento via htaccess. Este recurso é a melhor opção para você encaminhar uma visita para outro endereço, pois o redirecionamento é feito a nível de servidor.

Sempre que existir a possibilidade, use o .htaccess para redirecionar seus endereços. Evite o uso de plugins para o WordPress, ou até mesmo redirecionamento usando PHP, ASP ou HTML.

O seu site NÃO está seguro!

Receba AGORA um eBook com dicas para deixar o seu site MAIS SEGURO. É GRÁTIS!

Junte-se aos 6.651 assinantes que já baixaram e vão deixar seus sites seguros!

Seu e-mail não será compartilhado.