[Cascavel-pm] URL amigável em Perl
breno
breno em rio.pm.org
Quinta Julho 9 08:04:44 PDT 2009
Fernando,
legal vc ter encontrado uma solução direta via mod_rewrite. Apenas
lembre-se que frameworks modernos em Perl já fazem o mapeamento
"amigável" de URLs automaticamente para vc sem a necessidade de
mod_rewrite, e oferecem muito mais poder e flexibilidade aos seus
programas web. Atenção especial para o Catalyst[1], Mojolicious[2] e
Titanium[3].
1. Catalyst é um poderoso framework MVC em Perl, e escolha principal
da comunidade hoje. As URLs são mapeadas para métodos (as "actions" )
dentro de controllers que vc cria, normalmente utilizando atributos
para definir seus caminhos. Por exemplo:
-------------8<------------
package MeuSite::Controller::Carro;
use parent 'Catalyst::Controller';
sub ferrari :Local {
# o caminho http://meusite/carro/ferrari cairá aqui
}
1;
------------->8------------
Para mais informações, recomendo visitar
http://search.cpan.org/perldoc?Catalyst::Manual::Tutorial::02_CatalystBasics
ou, preferencialmente, seguir o Catalyst::Manual::Tutorial do início
mesmo.
http://www.catalystframework.org/
2. Mojolicious é um framework recente que tenta resolver os problemas
de desenvolvimento web de uma forma mais minimalista. Nele, vc define
o mapeamento URI -> action através de rotas. Para o mesmo exemplo,
poderia fazer algo como:
-------------8<------------
package MeuSite;
use base 'Mojolicious';
sub startup {
my $self = shift;
my $r = $self->routes;
$r->route('/carro/(action)')
->to( controller => 'carro' );
}
------------->8------------
e em lib/MeuSite/Carro.pm ...
-------------8<------------
package MeuSite::Carro;
use base 'Mojolicious::Controller';
sub ferrari {
# o caminho http://meusite/carro/ferrari cairá aqui
}
------------->8------------
Embora seja uma alternativa interessante, infelizmente o projeto ainda
está amadurecendo e ainda carece de documentação.
http://www.mojolicious.org/
3. Titanium é a nova roupagem do bom e velho CGI::Application, um
framework para resolver rápidamente problemas web, mas que não costuma
escalar tão bem quanto o Catalyst para aplicações de grande porte. Seu
mapeamento URI->action (que ele chama de "run mode") funciona na forma
"/meusite/modulo/run_mode":
-------------8<------------
package Carro;
use base 'Titanium';
sub setup {
my $c = shift;
$c->start_mode('index');
$c->run_modes( [qw(ferrari)] );
}
sub ferrari {
# o caminho http://meusite/carro/ferrari cairá aqui
}
------------->8------------
http://search.cpan.org/perldoc?Titanium
Vale lembrar que todos os frameworks acima já vem com programas
auxiliares que criam esqueletos de controllers, vistas e modelos para
você automaticamente, oferecem recursos de teste e servidores
stand-alone para desenvolvimento.
Naturalmente, esses foram só exemplos simples baseados na sua pergunta
inicial. Batendo novamente na tecla, lembre-se que frameworks web
trazem muito mais poder e flexibilidade a seus programas, e o
mapeamento de URIs amigáveis é só uma delas. Ah, existem outras também
como Jifty, Gantry, Maypole, mas essas eu deixo como um exercício para
o leitor ;-)
Escolha a que melhor atende suas necessidades e divirta-se. Qualquer
dúvida, a lista existe pra isso!
Espero ter ajudado.
[]s
-b
2009/7/9 Fernando <fernandolouis em terra.com.br>:
> Valeu pessoal, já achei um artigo que elucida tudo:
> http://www.plugmasters.com.br/sys/materias/401/1/Criando-urls-amig%E1veis-com-o-mod_rewrite-do-Apache
>
> Agora vou entrar em contato com o pessoal do servidor pra ver se posso ter
> acesso a isso e realizar as urls amigáveis.
>
> []s,
> Fernando
>
> ----- Original Message ----- From: "João Gabriel Casteluber Laass"
> <gabriel em joaogabriel.org>
> To: "Cascavel Perl Mongers" <cascavel-pm em pm.org>
> Sent: Wednesday, July 08, 2009 6:56 PM
> Subject: Re: [Cascavel-pm] URL amigável em Perl
>
>
> Na verdade o que você quer usa um módulo do Apache e não necessariamente o
> Perl.
>
> O primeiro passo é habilitar o módulo "mod_rewrite" dentro do
> "httpd.conf" do Apache. Depois, basta criar um arquivo ".htaccess" com
> as regras que você irá usar para chamar a aplicação Perl que irá
> captar as pastas e sub-pastas virtuais como parametro.
>
> De uma googlada por "mod_rewrite" que você acha isso fácil fácil ;)
>
> João Gabriel C. Laass
> 27 8802.0195
> www.joaogabriel.org
>
>
>
> 2009/7/8 Fernando <fernandolouis em terra.com.br>:
>>
>> Pessoal, é simples em Per criar url amigáveis?
>>
>> Hoje em dia aplicar SEO é essencial para o site se tornar relevante nos
>> buscadores.
>>
>> Minha dúvida é como transformar uma url
>> www.site.com.br/cgi-local/programa.pl?modelo=ferrari&transporte=carro em
>> www.site.com.br/transporte/carro-ferrari
>>
>> []s,
>> Fernando
>> _______________________________________________
>> Cascavel-pm mailing list
>> Cascavel-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/cascavel-pm
>>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
Mais detalhes sobre a lista de discussão Cascavel-pm