Mod Rewrite - Como usar
Um dos conceitos mais falados no momento é o de endereço amigável. Mas o que seria isso? Bom, é a aplicação prática da manipulação de URLs do Apache (hoje existe para o IIS também).
Ok, sei que muitos não entenderam o que estou falando, então vejam os exemplos.
Ao invés de http://www.exemplo.com.br/index.php?loja=esportes&categoria=futebol&time=flamengo, podemos exibir http://www.exemplo.com.br/loja/esportes/futebol/flamengo.htm.
Visualmente, muito melhor, não é? Pois é, mas as vantagens não param por aí, porque além da amigabilidade, os motores de busca indexam com mais eficácia o nome do site e seu conteúdo.
Como fazer? Simples, siga as instruções abaixo:
Configurando no Apache
Atenção! Se você usa uma hospedagem compartilhada, consulte seu provedor.
- Abra o arquivo httpd.conf e localize as linhas abaixo e as descomente:
#LoadModule rewrite_module modules/mod_rewrite.so
#AddModule mod_rewrite.c - Reinicie o Apache:
apachectl -k restart
Criando o arquivo .htaccess
- Crie na raíz do diretório, um arquivo .htaccess
touch .htaccess - Se possível, habilite neste .htaccess o grupo e usuário do Apache
chown apache.apache .htaccess
Criando as regras de Rewrite
- Visualize que regra é desejada. Eu vou usar meu exemplo introdutório que é alterar http://www.exemplo.com.br/index.php?loja=esportes&categoria=futebol&time=flamengo por http://www.exemplo.com.br/loja/esportes/futebol/flamengo.htm
- Edite o .htaccess incluindo:
Options +FollowSymLinks
RewriteEngine on
RewriteRule loja/(.*)/(.*)/(.*)\.htm$ /index.php?loja=$1&categoria=$2&time=$3
Bom, parece um pouco complicado a primeira vista, mas a prática é esta mesmo. Não é nenhum tipo de mágica dos Gênios que usam Linux as URLs bonitinhas vistas por aí. Explicando parte a parte:
- Options +FollowSymLinks
Diz ao Apache que ele deve solicitar o arquivo real do link simbólico criado. Sem esta opção, normalmente um erro 505 é retornado no navegador. - RewriteEngine on
Habilita o engine rewrite. - RewriteRule loja/(.*)/(.*)/(.*)\.htm
Expressão responsável pelo rewrite funcionar. - /index.php?loja=$1&categoria=$2&time=$3
Transforma na expressão anterior os parâmetros $1, $2, $3 cada “(.*)”.
Espero que mais uma vez eu tenha desmistificado algo “complexo”.
- Enviado por: Gunfree às 09:54 pm
- Permalink para este artigo
- Classificado como: Apache, How-to, Linux, Mod Rewrite, SEO, Software Livre, Web Server
- RSS feed dos comentários deste artigo
- TrackBack URI
Fala brother, pagina bem bacana com otimos tutos… Agora me diz uma coisa, voçe diz que da para faser no IIS o rewrite… Mas nao comentou como… Tem ideia de como se fas?
Mauro,
Existem várias soluções. Não vou recomendar nenhuma, porque nunca fiz isso no IIS. Mas dê uma olhada em alguns e é claro pesquise e teste bastante antes de usar em produção.
http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1469
http://www.download.com/IIS-Mod-Rewrite-Pro/3000-2165_4-10684743.html
http://www.isapirewrite.com/
http://www.qwerksoft.com/products/iisrewrite/
Valeu meu camarada, voçe tem mas dica de rewrite? To precisando upar um site mais nao to sabendo faise o foriward… Pode ajuda?
Fala Mauro!
Bom, creio que você vai precisar me dar maiores informações sobre o Forward que você deseja. E por favor, eu não quero ser chato publicamente, mas tenha um pouco mais de atenção em sua escrita, pois ela pode te atrapalhar um bocado no futuro.
Gunfree, estou pesquisando sobre o Rewrite e acabei achando este artigo… Bem não saco nada sobre este assunto, mas pelo que vi é bastante simples de configurar.
Ah, a propósito, nunca vi alguém ser tão educado, pelo menos na Net, para sugerir mais atenção na digitação afim de evitar situações constrangedoras… Sua observação foi ótima. Valeu!!!
Rofasa,
Muito obrigado pelos elogios. E sim, O rewrite é algo muito simples que tem uma fama monstruosa de ser difícil de usar. Se precisar, já sabe. Dê uma passada por aqui que tentarei te ajudar.
[]’s
Gunfree