
As Url´s Amigáveis, como simpaticamente chamam a técnica de Rewrite, viraram rapidamente o atrativo da bolha web 2.0 pelo fato de atrair mais usuários e ainda dar mais relevância ao seu conteúdo, mais o que tem de legal nisso tudo ?
http://www.site.com.br/index.php?artigo=25&cat=amor&dia=10
Você pode conseguir:
http://www.site.com.br/index/artigo/25/cat/amor/dia/10/
http://www.site.com.br/artigo/amor/dia/10/
http://www.site.com.br/Site-25-amor-10.htm
ou seja, cerveja (piada mal posicionada), você poderá manipular da forma que achar melhor a sua URL, mais qual o objetivo ?
Além de tornar mais “amigável” ao usuário isso facilita muito nos motores de busca, e normalmente um link desses atrai sempre mais visitantes.
Ao que interessa então:
mod_rewrite, como diz o nome re-write, reescrever, este modulo convete uma url em qualquer formato em um formato pré programado por voce.
Etapa 1 – Configuração
Verifique dentro do seu httpd.conf por:
LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c
Se os mesmos estiverem comentados (# na frente), descomente ambos (retire o #) e reinicie o apache.
No caso do Debian 4 Etch, as linhas em questão deverão estar em mods-avaliable/rewrite.load e ou .conf e veja se o link simbolico está criado em mods-enabled/ se não estiver criado basta criando então.
ln -s origem destino
Etapa 2 – Arquivo .htaccess
Nesta etapa deve-se criar o arquivo .htaccess (ex: touch .htaccess) se o mesmo já existir, apenas verifique as permissões dele de leitura e escrita
É interessante setar como grupo e usuario do arquivo os dados utilizados pelo apache,
Ex: chown www-data.www-data .htaccess (no caso de www-data ser o utilizado pelo seu apache)
Obs: O arquivo deverá ser criado ou deverá existir no mesmo local que foi definido no apache o DocumentRoot (diretório principal)
Etapa 3 – Criando sua Url Amigável
Passo a passo agora, a minha url em questão é:
http://www.site.com.br/index.php?artigo=25&cat=amor&dia=10
Agora sim, vamos editar o .htacess com seu editor preferido e inserir:
Options +FollowSymLinks
RewriteEngine on
RewriteRule Teste(.*)-(.*)-(.*)\.htm$ /index.php?artigo=$1&cat=$2&dia=$3
Complexo ? nada é até simples demais, vamos decompor:
Options +FollowSymLinks: A opção FollowSymLinks ativada determina que o Apache deverá solicitar o arquivo real do link simbolico que será criado, sem isso resultaria em um erro 505 (em alguns casos sem essa opção funciona mesmo assim pois não foi necessário a criação de links simbolicos).
RewriteEngine on: Ativa a engine (motor) do rewrite.
RewriteRule Site-(.*)-(.*)-(.*)\.htm$ : Esta parte é o fundamento do Rewrite, é a criação da regra que será utilizada na montagem da nova URL, nessa sentença podemos traduzir que a nova URL será montada da seguinte forma: Site-1-2-3.htm sendo 1,2,3 parametros de $ definido ao final, mais quem são esses parametros ? espera p****.
/index.php?artigo=$1&cat=$2&dia=$3 : Está parte trabalha em cima da nossa URL original, repare que a URL está sendo decomposta em parametros $1, $2, $3, isso mesmo, os mesmos que serão substituidos na abordagem anterior, simples demais, ah você quer colocar o dia como sendo paramêtro ? /index.php?artigo=$1&cat=$2&$3=$4 , resolvido basta agora alterar na URL de saída.
Finalizando, tudo isso irá gerar a URL
http://www.site.com.br/Site-25-amor-10.htm a partir de
http://www.site.com.br/index.php?artigo=25&cat=amor&dia=10
Isso é só o começo, da pra brincar muito no .htaccess e ainda tem muitos links legais por ai, confiram:
Gerador de .htaccess
Manual do mod_rewrite
Obs: é .htaccess e não .htacess