Apache, mod_rewrite e URL Amigável

7 11 2007

Apache

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


Ações

Informações

2 respostas para “Apache, mod_rewrite e URL Amigável”

20 02 2008
As melhores práticas de SEO que você pode adotar em seu web site ou blog para melhorar o posicionamento nos mecanismos de busca | desenvolvimento para web (23:48:37) :

[...] Existem maneiras de evitar isso, “sobreescrevendo” por URIs mais amigáveis tanto para os mecanismos de busca, quanto para as pessoas guardarem. Existe material bem extenso sobre esta questão. Quem quiser, pode começar os estudos no nodesign, no artigo Apache, mod_rewrite e URL Amigável. [...]

26 06 2008

Deixe um comentário

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