Re: mod_rewrite, proxys, authorization and redirects

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 6/21/07, Martijn <sweetwatergeek@xxxxxxxxxxxxxx> wrote:
Hello.

My webserver uses a second server (non-apache) to deliver certain
content, say xml files. This server runs on the same machine, on a
different port. In my httpd.conf I have the following line

  RewriteRule ^(.*\.xml)$ http://localhost:8000/$1 [P]

which, indeed, successfully lets the second server take care of the
delivery of xml files.

Now from what I understand from the mod_perl documentation, the
rewriting of URLs takes place before any authentication/authorization.
However, if I block access to certain URLs -either via a mod_perl
module or via 'Deny from all'- access is denied and the second server
is never reached. This is in fact what I want, but I'd like to
understand why this is happening, as I think it's contradicting the
documentation. Does anyone have any clues?

I don't know much about mod_perl, but this depends on a couple factors:

1. If you are using .htaccess files rather than httpd.conf for
applying RewriteRules, then you are more likely to get per-directory
configuration applied, including auth.

2. There are multiple ways to apply configuration to particular parts
of the server. <Directory> applies to particular filesystem
directories, and therefore normally wouldn't be applied to proxied
requests that never hit the filesystem. <Location> applies to URLs and
therefore should apply to all requests whether or not they map to the
local filesystem.


Furthermore, I have a few simple questions about Redirect and RedirectMatch:
- is it true that RedirectMatch is exactly the same as RewriteRule
with the [R] flag?

In effect, yes. But of course RewriteRule is much more flexible.

- if I use [R] flags, are the rules still applied top-down?

If you mean sequentially, then yes.

- is there any need for [L,R] flag? I would think that R forces the
whole mod_rewrite-process to start again, with a new URL so it could
not be anything but the last rule that is applied.

In fact, if I remember correctly, rewriting will continue after an R
flag. This means that subsequent RewriteRules may, for example, change
the target URL before the actual rewrite happens. (But I haven't tried
this myself in a while, so I may be remembering incorrectly.)

Joshua.

---------------------------------------------------------------------
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


[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux