URL amigável é um ótimo recurso, ajuda facilitar a visualização do usuário final, deixa a URL mais fácil de entender, de decorar e muito mais bonita.
É comum você ver URL assim:
http://www.seusite.com.br/index.pl?search=casa&data=29-09-2010&pagina=234
Que agora com esse artigo vai ficar assim:
http://www.seusite.com.br/casa/29-09-2010/234
Configurando o arquivo .htaccess
Primeiro vamos criar um arquivo .htaccess no diretório raiz do seu site.
Coloque o seguinte conteúdo no arquivo .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.pl?dados=$1 [L,QSA]
</IfModule>
A linha "RewriteEngine On" habilita o módulo mod_rewrite do Apache.
A linha "RewriteCond %{REQUEST_FILENAME} !-f" verifica se a URL digitada é um arquivo existente no site.
A linha "RewriteCond %{REQUEST_FILENAME} !-d" verifica se a URL digitada é uma pasta existente no site.
A linha "RewriteRule ^(.*)$ index.pl?dados=$1 [L,QSA]" define a URL com a GET dados.
Criando o arquivo index.pl
Agora vem a parte mais importante da URL amigável.
Crie o arquivo index.pl no diretório raiz do seu site.
Coloque esse código no arquivo index.pl:
#!/usr/bin/perl
use strict;
use warnings;
use CGI qw(:standard);
my $dados = url_param('dados');
my @url = split(/\//, $dados);
if($url[0] ne '') {
if( -e $url[0] . '.pl'){
require $url[0] . '.pl';
} else{
require '404.pl';
}
} else {
require 'home.pl';
}
A linha "my $dados = url_param('dados');" captura a GET dados e passa para variável $dados.
A linha "my @url = split(/\//, $dados);" tem a função split do Perl, que usa expressões regulares para separar palavras ou frases e depois adiciona no array @url.
As outras linhas usam condições de comparação para testar a GET, verificar a existência do arquivo, se o arquivo não existir chama o arquivo de erro que é o "404.pl".
Você deve ter percebido que não coloquei o comando "print "Content-type: text/html\n\n";" para o funcionamento do HTTP, mas ele deve ser incluído em todos os outros arquivos.
Agora explicando como vai funcionar o script.
Exemplos:
Se você criar o arquivo "contato.pl", irá acessar ele assim:
http://www.seusite.com.br/contato
Se você criar o arquivo "empresa.pl" irá acessar ele assim:
http://www.seusite.com.br/empresa
Crie o arquivo "home.pl", ele será o index do seu site, porque quando alguém acessar seu site é esse arquivo que será chamado. Você poderá acessar ele de duas formas:
http://www.seusite.com.br
e
http://www.seusite.com.br/home