Utilizando mod_rewrite para criar URLs amigaveis

Atualmente o que temos que os motores de busca dando uma certa relevância para certos conteúdos ou urls, mas que nem sempre conseguimos alcança-las.
Um caso em particular disso é quando temos que realizar a passagem de parâmetros através de uma URL, mas isso não serio muito amigável para o motor de busca, então é ae que entra uma solução para o nosso problema, o uso do mod_rewrite.

Mas o Que é o mod_rewrite?

O mod_rewrite como é conhecido, ou rewrite engine, é uma módulo do servidor web Apache que é usado para re-escrever URLs antes que os itens solicitados sejam buscados no servidor e isto pode ser usados para vários propósitos. As regras do mod_rewrite serão lidas a partir do seu arquivo .htaccess, por isso é importante sempre colocar o “RewriteEngine On” e sempre testar muito bem as regras para seu site não entrar em loop e ficar inacessível.

O que é uma URL amigável para o motor de busca?

Uma URL amigável é uma URL que seja bem aceita pelo motor de busca, normalmente uma esta é longa, contém valores dinâmicos e dificilmente contém palavras-chave. Já as URLs amigáveis são curtas, estáticas e contém as keywords que se deseja obter maior relevância.

Usando mod_rewrite

Vamos a um exemplo prático disto, supondo que precise passar a um script denominado automovel.php as informacoes como modelo, combustível e ano, normalmente

seria feito na forma

www.dominio.com/automovel.php?modelo=gol&combustivel=gasolina&ano=2007

Para obtermos uma URL amigável na forma:

www.dominio.com/automovel/gol/gasolina/2007.html

bastaria adicionar o seguinte código, no seu .htaccess:

RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)\.html$ /$1.php?modelo=$2&combustivel=$3&ano=$4 [L]

Obviamente esta é uma aplicação básica da utilização do mod_rewrite para criar URL amigável e que pode ser adaptada as suas necessidades, não esquecendo que é aconselhável uma certa prática com expressões regulares para criar tais regras.

Conclusão

O mod_rewrite tem se demonstrado uma ferramenta útil para criar URL que aparentemente são estáticas para o crawler do motor de busca, porém deve ser utilizada com cuidado para não criar regras erradas e tornar seu site inacessível. Uma dúvida que alguém poderia levantar é sobre a ordem de se utilizar automovel/gol/gasolina ou automovel/gasolina/gol na URL, mas isto é uma discussão que deixaremos para outro post sobre profundidade dos caminhos na URL.


Assine o nosso Feed
2.425 assinantes,
assine você também!
Publique esse artigo no Twitter Salve este artigo no Delicious Cadastre esse artigo no Dihitt Cadastre esse artigo no UEBA Cadastre esse artigo no Rec6

Celso Fernandes

14 Respostas à este post

  1. Marcus VBP disse,

    Salve amigo! O recurso Mod_rewrite é muito interessante e de fato, é bastante importante para o SEO.

    Passei muito tempo tentando ativar o recurso no apache instalado na minha máquina, para que eu pudesse fazer testes localmente, de forma mais prática.

    Recentemente eu consegui fazê-lo no Ubuntu, e expliquei em um artigo do meu site. Fica como dica, já que os assuntos estão intimamente relacionados ;)

    Sucesso para vc.

  2. E aí Marcus! Sou o Ricotta lá do MXStudio! Que mundo pequeno! =)

    O mod_rewrite sem dúvidas é uma grande ferramenta para otimização de sites. Reescrever a URL como Celso citou acima, é um dos maiores “truques” para conseguir mais visitas e um melhor rankeamento.

    Não quero adiantar um futuro post do Celso, mas a grande chave é quais e em qual ordem dispor as palavras-chave da URL reescrita.

  3. Realmente é muito interessante.
    A pouco tempo comecei a usar o CodeIgniter um framework para PHP e ele trata todas as urls em mod_rewrite e usa a arquitetura MVC. Fica aí a dica.

  4. [...] junto aos motores de busca. Chegamos a comentar aqui no SEO Dicas, em um dos primeiros artigos, a importância e como fazer URLs amigáveis. Se você não leu este artigo, vale apena [...]

  5. Fiz esta pergunta em outro post mas acho que devia ser feito aqui…..
    Como configurar o .htaccess para tirar a extensão?
    Exemplo:
    “www.site.com.br/pagina.html” para “www.site.com.br/pagina”

  6. bob danton disse,

    Fiz a migração do joomla para da versão 1.0.15 para a versão 1.5.
    Tudo funcionou direitinho sem erros.
    Consigo entrar no modo administrador. Tudo funcionando permeitamente.
    Mas o sistema não roda para abrir a página principal.
    O suporte do server diz para que eu configure o Apache mod_rewrite.
    Não tenho a menor idéia de como fazê-lo.
    Peço ajuda, por favor.

  7. Olá Danton,

    Acho que você deve procurar o suporte do Joonla. Deve ser alguma configuração que passou despercebida.

  8. Rafael disse,

    Bacana o post…

  9. Muito legal o post e bem explicativo. Segui os passos e consegui configurar meu joomla. Mas cara surgiu uma duvida e não encontro nada na internet - ja estou sem esperanças. Tenho um banner que esta visivel em todas as pagina, apos utilizar o SEO este banner simplesmente não fuciona mais nos submenus. Alguma ajuda? Desculpa usar esse canal para tentar resolver o problema.

  10. o mod_rewrite esta disponível para o servidor apahce, mas e pra IIS? (windows/ASP) qual a melhor solução/opção?

    eu particularmente utilizo um algoritmo com server.transfer, funciona mas não sei se é a melhor opção… o que me dizem?

  11. Vitor M. Braga disse,

    Muito bom este post como todos os outros… mais para variar um poco não consegui realizar isso com sucesso.

    Primeira vez aqui no mestre SEO e ja com uma dúvida. Tomara que alguem me ajuda que ja faz quase duas semanas que estou atrás disso…

    Bem vamos lá.

    Estou utilizando o ModRewrite… na página sem ModRewrite o css aparece tudo certinho mais ja quando eu entro na pagina pelo link “gerado” a partir do ModRewrite o css some não aparece o fundo nem nada…

    Conteudo do .htaccess

    RewriteEngine on
    RewriteRule ^lancamentos\/([a-z,0-9,A-Z,_-]+)\/?$ lancamentos-imoveis-destaque.php?id=$1

    Teria como alguem me ajuda nisso???

    Obrigado e Tenham uma boa tarde

  12. Vitor, acho que ele não reconheçe o caminho do arquivo css:

    experimente colocar o endereço completo:

    ou utilizar dentro do :

    mas é mais indicado a primeira opção..

    espero ter ajudado, abraço ;)

  13. complementando, ja que blog nao permitiu codigos html… quis dizer pra colocar o endereço completo tipo: h t t p : / / w w w . s e u s i t e . c o m . b r / s t y l e s . c s s

    att,

Deixe um Comentário

Nota: A moderação de comentários pode estar ativa, então não há necessidade de re-enviar o seu comentário.