I am using CAP::Routes and it works very well for me.

First off, I am using ScriptAlias to map the url and hide the script
name it the url:

So I have a few lines in my /etc/apache2/sites-available/app virtual host file:

        ScriptAlias /contacts   /var/www/app/cgi-bin/contacts.cgi
        ScriptAlias /jobs        /var/www/app/cgi-bin/jobs.cgi
        ScriptAlias /titles       /var/www/app/cgi-bin/titles.cgi


Then in contacts.cgi:

#!/usr/bin/perl -w

use strict;

use App::Contacts;

my $app = App::Contacts->new();

$app->run();

and finally the run modes in Contacts.pm


sub setup
{
        my $self = shift;

        $self->start_mode('view');

        $self->routes_root('');

        $self->routes([
                ''                                                              
        => 'view' ,
                '/guest'                                                        
        => 'guest',
                '/staff/edit/:id'                                               
=> 'edit_staff',
                '/staff/process/:id'                                    => 
'edit_staff_process',
                '/:id/address/new'                                              
=> 'edit_address',
                '/:id/address/:id2'                                     => 
'edit_address',
                '/:id/address/process/:id2'                     => 
'edit_address_process',
                '/:id/email/process/:id2'                               => 
'edit_email_process',
                '/:id/email/new'                                                
=> 'edit_email',
                '/:id/email/:id2'                                               
=> 'edit_email',
                '/:id'                                                          
        => 'view' ,
                ]);

etc.

Then my urls are e.g.

http://mysite/contacts - default page
http://mysite/contacts/1234 - view a specific contact record
http://mysite/contacts/1234/address/new - add address to a contact record

Note that I haven't got the /contacts/ bit in my routes_root - it
doesn't seem to need it.

I've been using this for 6 months plus now and as I say it works really well.

Hope this helps.

mike

#####  CGI::Application community mailing list  ################
##                                                            ##
##  To unsubscribe, or change your message delivery options,  ##
##  visit:  http://www.erlbaum.net/mailman/listinfo/cgiapp    ##
##                                                            ##
##  Web archive:   http://www.erlbaum.net/pipermail/cgiapp/   ##
##  Wiki:          http://cgiapp.erlbaum.net/                 ##
##                                                            ##
################################################################

Reply via email to