httpd-bugs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 36509] - mod_rewrite incorrectly expands userdir URLs?
Date Wed, 07 Sep 2005 09:17:32 GMT
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=36509>.
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=36509





------- Additional Comments From alex@weej.com  2005-09-07 11:17 -------
Thanks for your explanation, but is this really expected behaviour?

"By default this prefix is the corresponding filepath itself."

Why are filepaths being used as request URIs? Unless you have DocumentRoot set
at / then this is never going to find any files, surely?

OK I copied the exact files in ~alex/public_html/testsite into
/var/www/localhost/htdocs/alex/testsite and requested
http://localhost/alex/testsite/blah

It works!

However, following the same logic you applied (excuse copy and paste :P):

"1. run mod_userdir (doesn't happen)
1a. resolve /alex/testsite/blah to
/var/www/localhost/htdocs/testsite/blah
2. find the .htaccess files
3. execute mod_rewrite found in .htaccess, which strips the .htaccess path from
the requested *filename* before matching the regexes
(/var/www/localhost/htdocs/testsite/foo -> foo), applies the rules (foo ->
urlhandler.php) and prefixes the result with rewritebase if the result is not
already an absolute url path (begins with a slash) (urlhandler.php ->
<prefix>/urlhandler.php)

"If explicitly set, the prefix is clear. If not set (from RewriteBase docs):
| By default this prefix is the corresponding filepath itself.

"so, the last transformation is urlhandler.php ->
/var/www/localhost/htdocs/testsite/urlhandler.php, which is treated as new URL. An
internal redirect to this url is issued and you get the 404." (No, it's 200 OK I
swear!)

This logic has got to be wrong, because as far as I can see and proven by the
fact that it works, the "prefix" is the original virtual path up as far as the
RewriteRule directive ("/alex/testsite/"). So this would explain why it is
200ing /alex/testsite/url-handler.php ->
/var/www/localhost/htdocs/alex/testsite/url-handler.php

Please don't close this bug just yet! I'm sure something dodgy is going on!

Thanks for your time André.

Alex

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org


Mime
View raw message