A técnica de manipulação de URL utilizando o MOD_REWRITE, ou muitas vezes chamada de URLs amigáveis, está sendo amplamente utilizada em sites de blogs e notícias entre outros por facilitar a memorização da URL pelo visitante do site e também por facilitar a indexação dos artigos pelas ferramentas de buscas como o GoogleBot.
Esta técnica permite ao desenvolvedor maior flexibilidade e facilidade na criação e manutenção do site. As configurações do MOD_REWRITE são feitas diretamente no arquivo .htaccess e dependem da configuração do arquivo httpd.conf, que é o arquivo de configurações do servidor Apache.
Para ilustrar a idéia de URLs amigáveis temos as duas URLs abaixo sendo a primeira a URL padrão utilizada em sites PHP pelo mundo todo, a segunda é a URL amigável que aponta para a mesma página da primeira URL. Então, qual delas você prefere?
Se você gostou do resultado então continue lendo que agora eu vou mostrar como você pode implementar o MOD_REWRITE em seu site.
Começaremos editando o arquivo de configurções do Apache, o httpd.conf. Neste arquivo vamos habilitar o módulo de reescrita dos diretórios e para isso siga os passos:
Localize as seguintes linhas neste aquivo: (note que elas podem não estar uma abaixo da outra)
Ao encontrar estas linhas remova o # (este que é o caracter de comentário do arquivo). Caso Não encontre estas linhas no arquivo, adicione-as.
Agora localize no arquivo de configuração as seguintes linhas:
Localizada as linhas, substitua a palavra None por All, isso irá permitir a reescrita de diretórios. Agora essas linhas devem ter ficado da seguine maneira:
Após realizadas as operações vamos salvar o arquivo e reiniciar o servidor Apache, para que as novas configurações entrem em funcionamento.
Agora vamos criar o arquivo .htaccess, note que este arquivo não tem um nome, somente uma extensão. É este arquivo que manipula as propriedades do diretório atual e de seus subdiretórios. Começaremos o arquivo com a instrução: "RewriteEngine on".
Coloque este arquivo na raiz do seu site.
O padrão utilizado para o comando RewriteRule é o seguinte:
RewriteRule URL_VIRTUAL URL_FÍSICA
A URL_VIRTUAL é a digitada no navegador, que será reescrita de acordo com uma expressão regular. A presença do [L] no final da linha indica que se a expressão digitada no navegador encaixar na espressã do RewriteRule ele para por ali, se não tiver este [L] o servidor continua testando pra ver se encaixa em mais alguma outra regra.
Prontinho, agora o URL amigável já deve estar funcionando no seu site, no padrão de URL mostrado no início deste artigo. Agora você precisa testar no arquivo artigo.php se as variáveis $cod e $pag estão vazias, para evitar que apareça algum erro.