I managed to reproduce this behaviour on Apache 2.0.54 (on Solaris). Wasn't difficult either. Seems like when the URL contains a %2F (which I believe is a / ??), mod_rewrite is never invoked, or silently (no log) declines to handle the request.
Nevertheless, I do indeed have an idea: why would you use a rewrite rule for something as simple as this ?? Use ProxyPass instead.
NameVirtualHost *
<VirtualHost *>
ServerName wagon.grasscommons.org
ServerAlias wagn.grasscommons.org
ProxyRequests Off
ProxyPass / http://localhost:3051/
ProxyPassReverse / http://localhost:3051/
<Proxy *>
Order Allow,Deny
Allow from all
</Proxy>
</VirtualHost>
-ascs
________________________________
From: lewis.hoffman@xxxxxxxxx [mailto:lewis.hoffman@xxxxxxxxx] On Behalf Of Lewis Hoffman
Sent: Wednesday, June 28, 2006 12:28 AM
To: users@xxxxxxxxxxxxxxxx
Subject: [users@httpd] reverse proxy fails on uri escape sequences
Hello,
I'm running a reverse proxy in apache-2.0.54
For most urls, it's working great. However, some URI escape sequences cause 404s from apache. It seems as if they never get to the rewrite rule.
For example, these two URLs:
1) http://wagon.grasscommons.org/c/wiki/new/thisthat
2) http://wagon.grasscommons.org/c/wiki/new/this%2Fthat <http://wagon.grasscommons.org/c/wiki/new/this%2Fthat>
access log entries for the two requests, respectively:
67.42.179.239 - - [27/Jun/2006:15:13:49 -0700] "GET /c/wiki/new/thisthat HTTP/1.1" 200 2404 "-" "Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv: 1.8.0.3) Gecko/20060326 Firefox/1.5.0.3 (Debian-1.5.dfsg+1.5.0.3-2)"
67.42.179.239 - - [27/Jun/2006:15:13:20 -0700] "GET /c/wiki/new/this%2Fthat HTTP/1.1" 404 218 "-" "Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv: 1.8.0.3) Gecko/20060326 Firefox/1.5.0.3 (Debian-1.5.dfsg+1.5.0.3-2)"
rewriteLog entries for the first url:
67.42.179.239 - - [27/Jun/2006:15:12:05 --0700] [ wagon.grasscommons.org/sid#6205b8][rid#672bf0/initial <http://wagon.grasscommons.org/sid#6205b8][rid#672bf0/initial > ] (2) init rewrite engine with requested uri /c/wiki/new/thisthat
67.42.179.239 - - [27/Jun/2006:15:12:05 --0700] [ wagon.grasscommons.org/sid#6205b8][rid#672bf0/initial <http://wagon.grasscommons.org/sid#6205b8][rid#672bf0/initial> ] (3) applying pattern '^/(.*)' to uri '/c/wiki/new/thisthat'
67.42.179.239 - - [27/Jun/2006:15:12:05 --0700] [ wagon.grasscommons.org/sid#6205b8][rid#672bf0/initial < http://wagon.grasscommons.org/sid#6205b8][rid#672bf0/initial> ] (2) rewrite /c/wiki/new/thisthat -> http://localhost:3051/c/wiki/new/thisthat
67.42.179.239 - - [27/Jun/2006:15:12:05 --0700] [wagon.grasscommons.org/sid#6205b8][rid#672bf0/initial ] (2) forcing proxy-throughput with http://localhost:3051/c/wiki/new/thisthat
67.42.179.239 - - [27/Jun/2006:15:12:05 --0700] [ wagon.grasscommons.org/sid#6205b8][rid#672bf0/initial <http://wagon.grasscommons.org/sid#6205b8][rid#672bf0/initial > ] (1) go-ahead with proxy request proxy:http://localhost:3051/c/wiki/new/thisthat [OK]
rewrite log entries for the second url: none
My virtual host config looks like this:
NameVirtualHost *
<VirtualHost *>
ServerName wagon.grasscommons.org
ServerAlias wagn.grasscommons.org
RewriteEngine On
ProxyRequests Off
RewriteRule ^/(.*) http://localhost:3051/$1 [P,L]
ProxyPassReverse / http://localhost:3051/
RewriteLog "/var/log/apache2-161/wagon- rewrite.log"
RewriteLogLevel 4
<Proxy *>
Order Allow,Deny
Allow from all
</Proxy>
</VirtualHost>
Any ideas?
--
Lewis Hoffman
Grass Commons
lewis at grasscommons dot org
---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
" from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx