Hello again.

(The original discussion, which I think is not necessary for
understanding the below, can be found here:
http://www.gossamer-threads.com/lists/apache/users/332651 - also,
we're talking Apache 2.0.58 here.)

After a lot of testing and debugging I have found that when one uses
RewriteRule in proxy mode, the 'new url' will be remembered but will
not have an effect until the Fixup phase in the Request Cycle. In
particular:
- rewrite rules that appear after the proxy one will not be applied
anymore (if the proxy rule is applied that is);
- but the access, authentication and authorization phases will still
be run on the front end server.

The fact that the a proxying does not take place immediately makes
sense -mod_proxy hooks to the fixup phase as well- but it had confused
my quite a lot, as the other rewrite rules (if they appear in
httpd.conf) do have an immediate effect.

As an example, take a request to http://www.example.com/aa/bb/page.xml
with the following lines in httpd.conf:

RewriteEngine On
RewriteRule ^(.*)/aa/(.*)$ $1/cc/$2
RewriteRule ^(.*\.xml)$ http://xml.example.com/$1 [P]
RewriteRule ^(.*)/bb/(.*)$ $1/dd/$2

this will load the page http://xml.example.com/cc/bb/page.xml, but the
following code

<Location /aa>
Deny from 12.34.56.78
</Location>

will still block access for the IP address 12.34.56.78. However,

<Directory /my/root/dir/cc>
Deny from 98.76.54.32
</Directory>

will NOT block access for 98.76.54.32, even if xml.example.com
actually used the same filesystem.

Oh, and I should add that I have not found this in the Apache
documentation, so I can't *guarantee* it to work. I can just say that
it works like this for me. And I hope I've described it clearly enough
for it to work for others too. :)

Martijn.

---------------------------------------------------------------------
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: [EMAIL PROTECTED]
  "   from the digest: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to