DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=31210>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=31210 Problematic competition between mod_rewrite and mod_dir ------- Additional Comments From [EMAIL PROTECTED] 2004-09-14 18:59 ------- mod_rewrite gets the first stab at processing the request. If we look at the rules described in the bug report, mod_rewrite first changes the URI "/stuff" into two parts: the base URI "/index.php" and the arguments "stuff.txt". mod_rewrite can glue these back together, but the component parts are stored in the request object. What looks like is happening is that "/stuff" gets left as the URI, the file gets set to "/index.php", and the arguments get set to "stuff.txt". This structure gets passed to mod_dir, which adds a slash to the URI and glues on the argument resulting in an external redirect of "/stuff/?stuff.txt". Based on the documentation, I believe this is the correct behavior even if it is neither desirable nor intuitive. I believe that the way to not encounter this behavior would be to set the passthrough flag. If PT is set, "/index.php" should replace "/stuff" as the request URI, and the argument "stuff.txt" still is added to the URI. Unfortunately, it looks like PT does not work with a per-directory configuration. The workaround is to move the rewrite directive from the .htaccess or <location> config locations and to a server location. This comment from the source of mod_rewrite.c is interesting: > /* if someone used the PASSTHROUGH flag in per-dir > * context we just ignore it. It is only useful > * in per-server context > */ I think this behavior is could be a bug in mod_rewrite. Alternatively, this behavior should be documented outside of the source code. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
