Atualmente, é muito comum o uso de scripts que são executados no servidor para gerenciar conteúdos dinâmicos em páginas web. Isto é muito interessante, entretanto geram problemas. Ex.: URLs muito grandes ou complicadas demais, que podem prejudicar a indexação do site por mecanismos de busca.
Exemplo de uma url complicada, de difícil memorização: http://www.meudominio.com.br/index.php?sessao=artigos&dia=26&mes=12&ano=2014-12-26
Exemplo de url amigável: http://www.meudominio.com.br/artigos/26/12/2014
O que é o mod_rewrite?
Mod_rewrite é um módulo do apache que realiza a reescrita transparente de URLs usando expressões regulares. É semelhante a um redirecionamento, porém o usuário não saberá que a página foi reescrita, já que o endereço na barra de endereços do navegador não muda e nenhum cabeçalho HTTP é enviado.
Crie/Edite o arquivo .htaccess no diretório raiz do seu site (DocumentRoot) e acrescente a linha:
RewriteEngine On
#Esta linha habilita o uso do mod_rewrite no seu site.
1º Exemplo:
RewriteRule ^([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/?$ exemplo1.php?dia=$1&mes=$2&ano=$3
Entendendo a linha acima:
RewriteRule - Define o início de uma regra de reescrita; ([a-z,0-9,A-Z,_-]+) - Todos os caracteres (Números e Letras) + _ -; \/ - Barras; \/? - Uma barra ou vazio.
2º Exemplo:
URL: http://www.meudominio.com.br/artigos/26/12/2014/20
Regra:
RewriteRule ^artigos\/([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/?$ exemplo2.php?sessao=artigos&dia=$1&mes=$2&ano=$3&id=$4
Certo. E agora? Qual a diferenca entre o 1º e o 2º exemplo?
A diferença é que ele manipula uma URL "/artigos/" somente se for www.meudominio.br/artigos/..., caso seja www.meudominio.com.br/10/10/2014, ele não irá executar a segunda regra.
As alterações todas juntas para o arquivo .htaccess:
RewriteEngine on RewriteRule ^artigos\/([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/?$ exemplo2.php?sessao=artigos&dia=$1&mes=$2&ano=$3&id=$4 RewriteRule ^([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/?$ exemplo1.php?dia=$1&mes=$2&ano=$3
Para os scripts receberem as variáveis criadas pelo mod_rewrite:
Para o 1º exemplo:
<?php echo "Digita via url amigáveis: $dia/$mes/$ano"; ?>
Para o 2º exemplo:
<?php echo "Digita via url amigáveis: Sessão: $sessao Dia: $dia Mes: $mes Ano: $ano Id: $id "; ?>
No mais é isto. A utilização do mod_rewrite é recomendada para as práticas de otimização da engine de busca (SEO) e vem sendo cada vez mais utilizada.
Caso possua quaisquer outras dúvidas, entre em contato com o nosso Suporte Técnico.