I understand translation handlers cannot be <Directory>-specific. But <Location> directives apply before any translation handler is called (see below).

yes they do, but not really. to really understand this, see


http://httpd.apache.org/docs/sections.html

specifically,

"There is actually a <Location>/<LocationMatch> sequence performed just before the name translation phase (where Aliases and DocumentRoots are used to map URLs to filenames). The results of this sequence are completely thrown away after the translation has completed."

which is what you found in the code - note the "completely thrown away" part. in essence, this means that the results of the <Location> config merging are discarded prior to translation, after which <Location> merging is done again.

regardless, officially apache translation (which includes the PerlTransHandler) cannot be <Location> specific - directives must appear outside of <Directory>, <Location>, and <Files> (and their regex counterparts). if you look at other modules that implement translation handlers (mod_rewrite, for instance), you'll see that their translation directives all have RSRC_CONF prototypes, which prohibits their placement inside of these containers.

--Geoff

Reply via email to