terça-feira, 29 de novembro de 2011

URL amigaveis com htaccess e php

http://dourado.net/2009/06/25/como-fazer-urls-amigaveis-com-htaccess-e-php/


Para quem não sabe o que é URL amigável vou explicar através de exemplo para evitar dúvidas.
URL Convencional: http://www.exemplodominio.com.br/noticia.php?id=1237
URL Amigável: http://www.exemplodominio.com.br/noticia/1237/
Viu a diferença? Além da vantagem de ficar mais elegante, facilita bastante a indexação dos mecanismos de buscas. Mas como fazer o controle de arquivos e identificadores? Então vamos aos códigos.
Primeiro você deve editar ou criar um arquivo .htaccess na raiz do seu site e inserir o código abaixo.
1
2
3
4
5
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(!.(\.gif|\.jpg|\.png|\.css|\.js|\.txt|\.php|\.htm|\.html)|.+[^/])$ /$1/ [L]
RewriteRule ^([^-]+)/$ /funcao.php?frase=$1&%{QUERY_STRING} [L]
A primeira linha linha é para ativar o módulo. A segunda e terceira linha é para ignorar arquivos e diretorios respectivamente. Na quarta linha ignora alguns tipos de arquivos. E finalmente na quinta linha, joga a string para um arquivo php qualquer, neste caso funcao.php.
1
2
3
4
5
$geturl = explode('/', $_SERVER['REQUEST_URI']);
if ($geturl[1] == 'noticia') { 
    $id = $geturl[2];
    include noticia.php;
}
Interpretando rapidamente o código, a linha inicial captura a variavel gerada pela URL e usa a função explode para separar as palavras da URL.
Em seguida eu faço uma condicional IF para verificar se é noticia e setar o ID da mesma. Você pode incrementar como quiser o código e ter quantas palavras desejar na URL. Basta ter um pouco de criatividade.
Lembre-se, para funcionar o módulo apache Rewrite deve estar ativo no servidor Apache. Para maiores informações, procure a empresa de hospedagem do seu site.

Nenhum comentário: