Hi,
I am running Apache 1.31 with mod_perl 1.27 and am writing a new app for our site using a custom PerlHandler (as opposed to PerlRun, as has been our practice). I noticed that my PerlTransHandler modules were being called twice, and with a modified URI the second time around. If my URI was /app/checkout/login, I would see the correct URI on the first trip through, but then /checkout/login on the second trip.
After searching the mailing list archives, it seems that Apache might be launching a subrequest because there is no physical /app/checkout/login file or directory on the server. I found a potential workaround in setting up a PerlPostReadRequestHandler to explicitly call each PerlTransHandler and then set the TransHandler to undef (see http://www.gossamer-threads.com/lists/modperl/modperl/50068?search_string=subrequest%20rv;#50068), but I don’t think this actually stops the subrequest from being fired. Plus, it could be confusing to someone who doesn’t know what’s going on.
I also saw info on mod_dir. I suppose this could be turned off, but I’m not sure it’s the appropriate place to look since the directory in question (/apps/checkout/login) does not even exist. Besides, mod_dir is useful elsewhere, and I don’t think I can switch it off locally in a <Location> directive. (The docs say that AllowOverride None can only be used in a <Directory>.)
Is there a way to avoid the subrequest for /checkout/login altogether? If not, is the PostReadRequestHandler the best workaround? Is mod_dir pertinent to this problem at all, and if so, what’s the best way to tweak it?
Thanks in advance.
- Simon ----------------------------------------------- Simon Miner Applications Engineer Christianbook.com -----------------------------------------------
|