On Thu, Dec 20, 2001 at 09:41:31PM +0100, Miroslav Madzarevic wrote: > The scenario: > There are two folders > /cgi-bin with plain perl cgi > /mod-perl with Apache::Registry scripts > > The application is being moved from cgi to mod_perl (Apache::Registry) one > script at a time. > My friend has a strange idea. > He wants to mix cgi-bin & mod_perl by testing all of the scripts in > cgi-bin and putting one cgi-script at a time into mod-perl folder. > He wants to do this internaly in Apache, changing the request for > a particular script so for example when you reference /cgi-bin/some_scr.pl > you actually end with /mod-perl/some_scr.pl. He doesn't want to > change the <a href> code from html files to stop pointing at /cgi-bin. > By moving all of them one at a time all of the application will > eventually end up working under mod_perl. > > How can he do that ? > > He thought of using mod_proxy or mod_rewrite. > The scripts are badly written and have been developed for three years > so far by various perl "programmers".
I'd use mod_rewrite or, even better, use the power of the PerlTransHandler.. Activate the following handler by adding PerlTransHandler Moo::my_trans_handler to your httpd.conf. In your example it will check for /usr/local/apache/cgi-bin/some_scr.pl_mod_perl_me If that file exists we rewrite the URL to use the /mod-perl prefix internally. sub Moo::my_trans_handler { my $r = shift; my $uri = $r->uri; return DECLINED unless ($uri =~ s,^/cgi-bin/,,); if (-f "/usr/local/apache/cgi-bin/${uri}_mod_perl_me") { $uri = = "/mod-perl/$uri $r->uri("/mod-perl/$uri"); } return DECLINED; } -- Paul Lindner [EMAIL PROTECTED] ||||| | | | | | | | | | mod_perl Developer's Cookbook http://www.modperlcookbook.org Human Rights Declaration http://www.unhchr.ch/udhr/index.htm