Quick question

mike mike503 at gmail.com
Wed Mar 18 22:33:15 MSK 2009


well, i did it this way, and it seems to work...

rewrite ^/sites/foo/index.php$ http://foo.com/ permanent;
rewrite ^/sites/coolsw(|/)$ http://foo.com/ permanent;

# kill it from search engines
rewrite ^/sites/foo/(.*)$ /kill last;
location /kill {
        return 404;
}


2009/3/18 Igor Sysoev <is at rambler-co.ru>:
> 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
> http://sysoev.ru/en/
>
>





More information about the nginx mailing list