Redirecionamento via htaccess

Compartilhar no facebook
Facebook
Compartilhar no whatsapp
WhatsApp
Compartilhar no linkedin
LinkedIn
Compartilhar no twitter
Twitter
Compartilhar no pinterest
Pinterest

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 https://meusite.com

# 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 ^(.*)$ http://meunovosite.com/$1 [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.

Deixe um comentário

Já faz parte da nossa Lista VIP de Conteúdo?
Receba semanalmente as melhores dicas para
deixar o seu site seguro, rápido e otimizado:

Seu E-mail não será compartilhado.

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 1.304 assinantes que vão deixar seus sites seguros.

Seu e-mail não será compartilhado.