I define a generalized output filter for any .page file:
<FilesMatch "\.page">
SetHandler perl-script
PerlOutputFilterHandler Layout
</FilesMatch>
I have a <Directory> block:
<Directory ${WEB_07_ROOT}/tools>
DataSources Environment
</Directory>
which I'm referencing via an Alias from a VirtualHost:
<VirtualHost *:${WEB_07_PORT}>
ServerName home.Dimension.org
DocumentRoot ${WEB_07_ROOT}/dimension
DirectoryIndex index.page
Alias /tools ${WEB_07_ROOT}/tools
<FilesMatch "\.page">
SetHandler perl-script
PerlResponseHandler Data
</FilesMatch>
</VirtualHost>
(never mind the macro expansion strings, I'm pre-processing the
configuration file because it's just easier that way).
My PerlResponseHandler works fine on files in the /tools directory for
pages that are specified, for example:
/tools/environment.page
/tools/index.page
If I use just the directory URI:
/tools/
the DirectoryIndex specification works but I don't get any configuration
data inside the PerlResponseHandler from any variant of
Apache2::Module::get_config. So my response handler doesn't work right.
Everything's fine when I specify index.page, and when I don't the URI
comes back as index.page, but in the case where DirectoryIndex makes
this happen I don't get any configuration data item.
I have constructed a PerlTransHandler which can be attached to the
VirtualHost. In it I do what DirectoryIndex would do, I check for a
trailing slash and append index.page. When I do this the subsequent
response handler has appropriate configuration data.
I find this odd. Can anyone explain why DirectoryIndex doesn't work the
same as an "equivalent" PerlTransHandler?