Pular para o conteúdo

URL amigável com Perl

Procurando na internet um artigo sobre URL amigável com Perl não encontrei, pensei em fazer um e estou aqui. Alguns experientes da linguagem Perl fazem isso brincando, logo esse artigo é voltado para os iniciantes.
Lucas mineirobr
Hits: 14.311 Categoria: Perl Subcategoria: Internet
  • Indicar
  • Impressora
  • Denunciar

Introdução

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

   1. Introdução
   2. Explicação final

Configurando OTRS com PSGI/Plack e executando com Starman

Catalyst Framework Perl - (parte 2)

Executando os principais frameworks Perl no cPanel com CGI

Catalyst Framework Perl - Parte III

Catalyst Framework Perl (parte 1)

Programando uma Intranet com Apache, MySQL e Perl (parte 1)

Introdução a CGI com a RFC 3875

Catalyst Framework Perl (parte 1)

Executando os principais frameworks Perl no cPanel com CGI

Catalyst Framework Perl - (parte 2)

#1 Comentário enviado por lucasrca em 20/10/2010 - 13:07h
Excelente. Obrigado.

Contribuir com comentário

Entre na sua conta para comentar.