httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joost de Heer <jo...@sanguis.xs4all.nl>
Subject Strange mod_rewrite behaviour?
Date Sun, 16 Oct 2005 15:38:46 GMT
In the mod_rewrite examples page the following can be found:

RewriteEngine on
RewriteCond %{REQUEST_URI} !-U
RewriteRule ^(.*) http://webserverB.dom/$1

[Not related comment: shouldn't this be ^/(.*)]

A request for http://localhost/foo/bar results in the following log:

127.0.0.1 - - [16/Oct/2005:17:34:06 +0200] 
[windows.joost.localnet/sid#46a8b0][rid#4b1900/initial] (2) init rewrite 
engine with requested uri /foo/bar
127.0.0.1 - - [16/Oct/2005:17:34:06 +0200] 
[windows.joost.localnet/sid#46a8b0][rid#4b1900/initial] (3) applying pattern 
'^(.+)' to uri '/foo/bar'
127.0.0.1 - - [16/Oct/2005:17:34:06 +0200] 
[windows.joost.localnet/sid#46a8b0][rid#4c7a48/subreq] (2) init rewrite engine 
with requested uri /foo/bar
127.0.0.1 - - [16/Oct/2005:17:34:06 +0200] 
[windows.joost.localnet/sid#46a8b0][rid#4c7a48/subreq] (3) applying pattern 
'^(.+)' to uri '/foo/bar'
127.0.0.1 - - [16/Oct/2005:17:34:06 +0200] 
[windows.joost.localnet/sid#46a8b0][rid#4c7a48/subreq] (4) RewriteCond: 
input='/foo/bar' pattern='!-U' => matched
127.0.0.1 - - [16/Oct/2005:17:34:06 +0200] 
[windows.joost.localnet/sid#46a8b0][rid#4c7a48/subreq] (2) rewrite /foo/bar -> 
http://webserverB.dom//foo/bar
127.0.0.1 - - [16/Oct/2005:17:34:06 +0200] 
[windows.joost.localnet/sid#46a8b0][rid#4c7a48/subreq] (2) implicitly forcing 
redirect (rc=302) with http://webserverB.dom//foo/bar
127.0.0.1 - - [16/Oct/2005:17:34:06 +0200] 
[windows.joost.localnet/sid#46a8b0][rid#4c7a48/subreq] (1) escaping 
http://webserverB.dom//foo/bar for redirect
127.0.0.1 - - [16/Oct/2005:17:34:06 +0200] 
[windows.joost.localnet/sid#46a8b0][rid#4c7a48/subreq] (1) redirect to 
http://webserverB.dom//foo/bar [REDIRECT/302]
127.0.0.1 - - [16/Oct/2005:17:34:06 +0200] 
[windows.joost.localnet/sid#46a8b0][rid#4b1900/initial] (5) RewriteCond URI 
(-U) check: path=/foo/bar -> status=302
127.0.0.1 - - [16/Oct/2005:17:34:06 +0200] 
[windows.joost.localnet/sid#46a8b0][rid#4b1900/initial] (4) RewriteCond: 
input='/foo/bar' pattern='!-U' => not-matched
127.0.0.1 - - [16/Oct/2005:17:34:06 +0200] 
[windows.joost.localnet/sid#46a8b0][rid#4b1900/initial] (1) pass through /foo/bar

So instead of getting redirected, the -U seems to get applied again, sees the 
request resulted in a 302 redirect, and decides that it's a valid URL after 
all, so it's passed through, leading to a 404 error, instead of the redirect.

Am I misinterpreting the results, is the example wrong, or is something weird 
going on in mod_rewrite with -U?

Joost

Mime
View raw message