O que é mod_rewrite?É um módulo escrito para o servidor Apache, responsável pela reescrita de URLs em páginas Web.
Hoje em dia, com a popularização de assuntos como SEO, usabilidade e acessibilidade, esta prática se tornou comum e está cada vez mais sendo utilizada por grande portais.
Antes de mais nada, para que o módulo mod_rewrite funcione, obviamente você deve ter configurado e ativado no seu servidor Apache.
Criando o .htaccessCrie um arquivo com o nome ".htaccess" (exatamente desta forma), e mova para a pasta raiz do seu domínio (ou onde queira implantar a reescrita). Em seguida, insira o código abaixo:
Código:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?cod=$1
Entendendo o código:RewriteEngine OnAtiva o suporte à reescrita
RewriteCond %{SCRIPT_FILENAME} !-fNão aplica a condição para arquivos
RewriteCond %{SCRIPT_FILENAME} !-dNão aplica a condição para diretórios
RewriteRule ^(.*)$ index.php?cod=$1Regra de reescrita onde qualquer string (.*) após a pasta, onde estiver o .htaccess, será interpretado por index.php passado na variável cod
Na prática, se você tem uma URL do tipo
www.url.com.br/secao/subsecao/, será interpretada por
www.url.com.br/index.php?cod=secao/subsecao/. E mais, você não terá limite de níveis para utilizar com as /.
Interpretando com PHPCom seu arquivo de reescrita criado, você já pode criar uma lógica no seu arquivo PHP para que interprete e leia as URLs passadas.
Veja um exemplo auto-explicativo:Código:
<?php
/*
* separa a URL por "/" e insere num vetor (array)
*/
$url = explode('/', $_GET['cod']);
/*
* imprime a string passada após a primeira /
* no exemplo acima, seria: secao
*/
echo $url[0];
/*
* imprime a string passada após a segunda /
* no exemplo acima, seria: subsecao
*/
echo $url[1];
?>
Desta forma, você pode utilizar includes para suas seções, ou qualquer outro tipo de inclusão, uma vez que você já tem suas seções separadas.
Fonte: cirofeitosa.com.br