Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env plackup
- use strict;
- use warnings;
- use Plack::Builder;
- use Plack::App::File;
- use Plack::App::WrapCGI;
- BEGIN {
- chdir "/var/www/blogsum" or die "Unable to chdir: $!";
- require "./startup.pl";
- }
- use lib '.';
- my $themes = Plack::App::File->new( root => "themes" )->to_app;
- my $index = Plack::App::WrapCGI->new(script => "index.cgi")->to_app;
- my $admin = Plack::App::WrapCGI->new(script => "admin.cgi")->to_app;
- sub rewrite_rule ($$$) {
- my ($env, $match, $action) = @_;
- $action->($env) if $env->{PATH_INFO} =~ s{$match}{};
- }
- sub rewrite { my $app = shift; sub {
- my $env = shift;
- rewrite_rule $env, qr{^/rss.xml$}, sub {
- $env->{QUERY_STRING} .= "&rss=1";
- };
- rewrite_rule $env, qr{^/rss2.xml$}, sub {
- $env->{QUERY_STRING} .= "&rss=2";
- };
- rewrite_rule $env, qr{^/Page/([^/]+)/?$}, sub {
- $env->{QUERY_STRING} .= "&page=$1";
- };
- rewrite_rule $env, qr{^/Tags/([^/]+)/?$}, sub {
- $env->{QUERY_STRING} .= "&search=$1";
- };
- rewrite_rule $env, qr{^/([0-9]{4})/([0-9]{2})/([^/]+)$}, sub {
- $env->{QUERY_STRING} .= "view=article&year=$1&month=$2&uri=$3";
- };
- rewrite_rule $env, qr{^/([0-9]{4})/([0-9]{2})/?$}, sub {
- $env->{QUERY_STRING} .= "view=article&year=$1&month=$2";
- };
- rewrite_rule $env, qr{^/([0-9]{4})/?$}, sub {
- $env->{QUERY_STRING} .= "view=article&year=$1";
- };
- $env->{PATH_INFO} = '/index.cgi' if $env->{PATH_INFO} eq '/';
- $env->{PATH_INFO} ||= '/index.cgi' ;
- return $app->($env);
- } }
- builder {
- enable \&rewrite;
- mount "/themes" => $themes;
- mount "/admin.cgi" => $admin;
- mount "/index.cgi" => $index;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement