I think that this is pretty import to add to the core features. I was able to get the patch to work, but I had to add:
use Apache2::RequestUtil; > ********** > mod_perl-1.99_16-3 > ********** > DirectoryIndex index.pl please see this thread http://marc.theaimsgroup.com/?t=111335099400001&r=1&w=2 specifically the solution found here http://marc.theaimsgroup.com/?l=apache-modperl&m=111445150218566&w=2 if this keeps coming up I might consider adding the My::Fixup code to mp2core as Apache2::DirectoryFixup like in the attached patch (with documentation, of course :) --Geoff ["dirindex.patch" (text/x-patch)] Index: ModPerl-Registry/t/conf/extra.conf.in =================================================================== --- ModPerl-Registry/t/conf/extra.conf.in (revision 292232) +++ ModPerl-Registry/t/conf/extra.conf.in (working copy) @@ -37,6 +37,7 @@ ############################# <IfModule mod_alias.c> Alias /registry/ @ServerRoot@/cgi-bin/ + Alias /dirindex/ @ServerRoot@/cgi-bin/ Alias /registry_bb/ @ServerRoot@/cgi-bin/ Alias /registry_oo_conf/ @ServerRoot@/cgi-bin/ Alias /registry_prefork/ @ServerRoot@/cgi-bin/ @@ -65,6 +66,18 @@ PerlOptions +ParseHeaders </Location> +PerlModule Apache2::DirectoryFixup +<IfModule mod_dir.c> + <Location /dirindex> + SetHandler perl-script + Options +ExecCGI + PerlResponseHandler ModPerl::Registry + PerlOptions +ParseHeaders + DirectoryIndex cgi.pl + PerlFixupHandler Apache2::DirectoryFixup + </Location> +</IfModule> + <Location /registry_modperl_handler> SetHandler modperl Options +ExecCGI --- /dev/null 2005-09-29 04:34:53.321311760 -0400 +++ lib/Apache2/DirectoryFixup.pm 2005-09-30 00:11:08.800027265 -0400 @@ -0,0 +1,26 @@ +package Apache2::DirectoryFixup; + +use strict; +use warnings FATAL => qw(all); + +use Apache2::Const -compile => qw(DIR_MAGIC_TYPE OK DECLINED); +use Apache2::RequestRec; + +sub handler { + + my $r = shift; + + if ($r->handler eq 'perl-script' && + -d $r->filename && + $r->is_initial_req) + { + $r->handler(Apache2::Const::DIR_MAGIC_TYPE); + + return Apache2::Const::OK; + } + + return Apache2::Const::DECLINED; +} + +1; + --- /dev/null 2005-09-29 04:34:53.321311760 -0400 +++ ModPerl-Registry/t/dirindex.t 2005-09-30 00:08:32.871526372 -0400 @@ -0,0 +1,20 @@ +use strict; +use warnings FATAL => 'all'; + +use Apache::Test; +use Apache::TestUtil; +use Apache::TestRequest qw(GET); + +plan tests => 2, need [qw(mod_alias.c HTML::HeadParser mod_dir.c)], + need_min_module_version CGI => 3.08; + +my $url = "/dirindex/"; +my $res = GET $url; + +ok t_cmp($res->header('Content-type'), + qr{^text/html}, + "test Content-type header setting via DirectoryIndex"); + +ok t_cmp(lc($res->content), + '<b>done</b>', + "test body via DirectoryIndex");