Simple Perl Version of mod_dir
Perl
Switch branches/tags
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib/Apache
t
.gitignore
.travis.yml
Build.PL
Changes
MANIFEST.SKIP
README.md

README.md

Apache/Dir version 0.08

This simple module is designed to be a partial replacement for the standard Apache mod_dir module. One of the things that module does is to redirect browsers to a directory URL ending in a slash when they request the directory without the slash. Since mod_dir seems do its thing during the Apache response phase, if you use a Perl handler, it won't run. This can be problematic if the Perl handler doesn't likewise take the directory redirecting into account.

A good example is HTML::Mason. If you've disabled Mason's decline_dirs parameter (MasonDeclineDirs 0 in httpd.conf), and there's a dhandler in the directory /foo, then for a request for /foo, /foo/dhandler will respond. This can wreak havoc if you use relative URLs in the dhandler. What really should happen is that a request for /foo will be redirected to /foo/ before Mason ever sees it.

This is the problem that this module is designed to address. Configuration would then look something like this:

<Location /foo>
  PerlSetVar       MasonDeclineDirs 0
  PerlModule       Apache::Dir
  PerlModule       HTML::Mason::ApacheHandler
  SetHandler       perl-script
  PerlFixupHandler Apache::Dir
  PerlHandler      HTML::Mason::ApacheHandler
</Location>

Apache::Dir can also be configured to handle the request during the response cycle, if you wish. Just specify it before any other Perl handler to have it execute first:

<Location /foo>
  PerlSetVar  MasonDeclineDirs 0
  PerlModule  Apache::Dir
  PerlModule  HTML::Mason::ApacheHandler
  SetHandler  perl-script
  PerlHandler Apache::Dir HTML::Mason::ApacheHandler
</Location>

Installation

Build Status

To install this module, type the following:

perl Build.PL
./Build
./Build test
./Build install

Author

David E. Wheeler david@justatheory.com

Copyright and License

Copyright 2004-2011 by David Wheeler. Some Rights Reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.