>* David Pisoni <[EMAIL PROTECTED]> wrote: >> Hello again modperlers, >> >> I am using perl 5.6.1 / Apache 1.3.20 / mod_perl 1.26. >> >> I have an interesting problem which maybe someone could shed some >> light on : >> >> I have an early phase handler (can be done as either a >> PerlPostReadRequestHandler or a PerlTransHandler) which manipulates >> the request URI. The purpose of the handler is to strip out the >> first segment of the URI path and employ that as a "user type" >> string. I presently have it as a TransHandler which returns >> DECLINED, expecting Apache to continue URI translation based on the >> new URI setting. For almost all types of URIs this functionality is >> working: it works for files in the DocumentRoot, it works for >> PerlHandlers declared in <Location> blocks, and it works for Alias >> mapped paths. Only one thing breaks... >> >> The one URI type which isn't resolved correctly is >> DirectoryIndex-resolved paths. If mod_autoindex is on, then an >> AutoIndex directory listing is displayed. If mod_autoindex is off, >> a "NOT FOUND" error is displayed. If I access the same directory >> without the URI manipulation (and without the extra "user type" >> segment), the DirectoryIndex-specified file is served as expected. >> >> I thought to myself, maybe the mod_dir resolution wants to be before >> any declared PerlTransHandler (even though mod_autoindex comes >> after) so I tried moving my handler to a PostReadRequestHandler. >> Same effect though -- something is short-circuiting the >> DirectoryIndex function of mod_dir. >> >> Anyone else encounter this? Any ideas how to resolve? > >Don't try to strip the uri in sub requests ($r->is_main()). > > --Nikolaus
I don't. Indeed, if I did, other parts of the system would fail terribly. My handler begins with : return undef unless ($r->is_main()) and proceeds as described above. Thanks, David