Canonização do Domínio e Re-escrita do Index

{+}Redirecionamento de Domínio

Olá Caros Assinantes,

Neste artigo iremos abordar um tema que tem aparecido muito no nosso sistema de perguntas e respostas (Q&A), que é a canonização e re-escrita de URLs e ainda iremos comentar quando queremos redirecionar a index para nosso domínio.

Situação Atual

Temos um domínio mestreseo.com.br, quando acessamos tanto mestreseo.com.br, quanto www.mestreseo.com.br recebemos o código de retorno 200. Para piorar ainda mais nossa situação quando acessamos www.mestreseo.com.br/index.html também recebemos 200, então temos 3 URLs com o mesmo conteúdo.

Objetivo

Para resolver nosso problema, devemos canonizar nosso domínio, assim toda e qualquer URL que for acessada sem o www, seja mestreseo.com.br/pagina1.html quanto mestreseo.com.br/diretorio/pagina2.html deverão ser redirecionadas para www.mestreseo.com.br/pagina1.html e www.mestreseo.com.br/diretorio/pagina2.html respectivamente.

Além disso não podemos esquecer nosso index.html, mas no caso dele, é um redirecionamento diferente, onde o index será redirecionado para nosso domínio.

A Técnica

Utilizando o mod_rewrite do Apache (são regras simples, podem ser adaptadas para outros servidores facilmente) faremos os redirecionamentos comentados na seção objetivo, e o conteúdo do nosso .htaccess na raiz do site será o seguinte:

1. RewriteEngine on
2. rewritecond %{http_host} ^mestreseo.com.br [NC]
3. rewriterule ^(.*)$ http://www.agenciamestre.com/$1 [r=301,NC,L]
4.
5. rewriterule ^index.html$ http://www.agenciamestre.com/ [r=301,NC,L]

Vamos lá para entender o que estamos fazendo aqui:

  • Na linha 1 habilitamos o mecanismo de re-escrita nesta pasta (raiz do site);
  • Na linha 2 criamos uma condição que toda vez que nosso site for acessado sem www. (o caractere ^ significa começo de linha);
  • Na linha 3 indica que será feito o redirecionamento da URL sem www, para a url com www quando a condição da linha 2 for satisfeita;
  • Na linha 5 apenas fazemos um redirecionamento do arquivo index.html para o domínio.

Obs: Atenção para o caractere L dentro das condições, ele indica que uma vez que a regra for executa, mais nenhuma regra no arquivo deverá ser processada.

Versão Sem WWW

Você pode estar pensando agora: “Muito bom, exatamente o inverso da minha situação, eu preciso que o www.dominio.com.br seja redirecionado para dominio.com.br”, da mesma forma que o wordpress.com e twitter.com possuem.

Não se preocupe, é só alterar as linhas 2 e 3 para:
2. rewritecond %{http_host} ^www.dominio.com.br [NC]
3. rewriterule ^(.*)$ http://dominio.com.br/$1 [r=301,NC,L]

e analogamente a linha 5 para:
5. rewriterule ^index.html$ http://mestreseo.com.br/ [r=301,NC,L]

Conclusões

De uma forma bem simples, conseguimos resolver o problema de ter a nossa index sendo acessada por 3 URLs diferentes e o domínio esta perfeitamente canonizado para todas nossas URLs.

Espero que esta dica seja útil para vocês e caso tenham alguma consideração e/ou dúvida só deixarem nos comentários, e esperem por mais dicas sobre redirecionamento em breve.

Até breve,
Celso

Créditos da Imagem: jypsygen

Receba Novidades

Insira seu email para receber novidades e dicas exclusivas da Agência Mestre!
Divulgue este artigo

3 Comentários para “Canonização do Domínio e Re-escrita do Index”

    • Frank Marcel

      Até que sim, se você quer rankings em dedetizadora. Ter a palavra no nome do domínio (e não subdomínio) é mais interessante. Mas cuidado com a estratégia de subdomínios, não é só criar dezenas com as keywords que você compete.

      Responder
  1. shapeweb

    testei o codigo com o index.html funciona normal, mas minha index é php e quando mudo para index.php na regra ele para de funcionar até as outras regras de url limpa como faço pra resolver isso ?

    Responder

Deixar um comentário

  • (não será publicado)

XHTML: Você pode usar estas tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>