Quick question

Igor Sysoev is at rambler-co.ru
Wed Mar 18 22:11:24 MSK 2009

On Wed, Mar 18, 2009 at 12:06:36PM -0700, mike wrote:

> rewrites happen before location {} blocks are considered (if the
> rewrite is on a global level) correct?
> so
> location /foo {
>   this will never be computed
> }
> rewrite /foo/bar /somethingelse permanent;
> That's at least what it seems to me, unless I'm missing something.
> It doesn't seem like ^~ ~* etc seem to matter either. Or is it all
> depending on the order in the config file?

Yes, as in Apache rewrites on server level run before location search.

Then (*) nginx chooses a location, then nginx runs rewrites inside
the location. If any rewrite is matched and it has not "break" flags,
then nginx chooses a location again, i.e, goes to (*).
This cycle may run no more than 10 times.

Igor Sysoev

More information about the nginx mailing list