URL Amigável – PHP e arquivo .htaccess

5 Comments

Simples mas bem eficiente, exemplo pratico de como usar url amigável em seu site!!…..

Crie um arquivo “.hatccess” no diretório raiz de seu site!.


<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php
</IfModule>

Toda e qualquer URL digitada, será direcionada para o seu arquivo “index.php”. Então agora, é só você tratar os parâmetros.

Se você usa uma URL do tipo:

www.site.com.br/index.php?pag=catalogo&id=1

Você pode deixar ela amigável:

www.site.com.br/catalogo/1

Para você pegar esses parâmentros da url amigável, pode se usar expressões regulares. No inicio de seu arquivo “index.php” coloque o código:


$aux = substr( $_SERVER['REQUEST_URI'], strlen('/'));
if( substr( $aux, -1) == '/'){
 $aux=substr( $aux, 0, -1);
}
$urlARRAY___ =explode( '/', $aux);

O que acontece aqui ?, Você está pegando sua url e separando dentro de um array, pela string de separaçao “/” (barra).

Se tiver (catalogo/1) então ele separa, “catalogo” e “1“, porque a / (barra) está definida como separador.

A sua url é: www.site.com.br/catalogo/1 . Então por causa do htaccess, ele será direcionado para o arquivo “index.php” e depois a url será recortada levando em consideração a / (barra) como separador:

$urlARRAY___[1] vai receber o valor “catalogo”

$urlARRAY___[2] vai receber o valor “1″

Pronto feito isso! é só vc trabalhar com os seus parâmentro…

Uma observação importante:

Usando esse exemplo de URL, você deve chamar arquivos de imagens, css, video, flash etc..com o caminho completo:

Se antes você usava:


<link rel="stylesheet" type="text/css" media="all" href="css/stylo.css" />

Agora você deve usar:


<link rel="stylesheet" type="text/css" media="all" href="http://www.site.com.br/css/stylo.css" />

Por causa do arquivo .htaccess em ação, você precisa arrumar esses caminhos para sua aplicação achar os arquivos corretamente.