On 10-11-30 07:51 , "Alex J. G. Burzyński" wrote: > Hi, > > I've noticed that when using custom directives within nested <Location> > the result of $r->location reports the parent one only, instead of the > subdir. > > However if I add PerlSetVar the $r->location will report the correct one.
Yup, you've stumbled on an interesting bug. > The way to replicate: > please follow the example > http://perl.apache.org/docs/2.0/user/config/custom.html#Merging_at_Work > > and now add: > > --- httpd.conf-orig 2010-11-30 12:06:57.491843181 +0000 > +++ httpd.conf 2010-11-30 12:07:39.217629859 +0000 > @@ -18,6 +18,7 @@ > PerlResponseHandler MyApache2::CustomDirectivesTest > </Location> > <Location /custom_directives_test/subdir> > + PerlSetVar fix "problem" > MyPlus 1 > MyList "SubDir" > MyAppend "SubDir" The reason this makes a difference is that without it, there are no mod_perl directives (the custom ones are 'special'), so no configuration pass for modperl in that directory. Side-effect of that is that $r->location isn't tracked proprely. Keep in mind that r->location is not an httpd api, but rather something convenient mod_perl tracks. But not in this case, unfortunately. -- Philippe M. Chiasson GPG: F9BFE0C2480E7680 1AE53631CB32A107 88C3A5A5 http://gozer.ectoplasm.org/ m/gozer\@(apache|cpan|ectoplasm)\.org/
signature.asc
Description: OpenPGP digital signature