Rewrite в контексте одного server_name

Igor Sysoev is at rambler-co.ru
Sun Sep 7 10:09:05 MSD 2008


On Sun, Sep 07, 2008 at 12:47:59AM +0400, Andrey Korolyov wrote:

> Имеется следующая конфигурация:
> 
>                 server_name    example.com www.example.com;
>                 location  / {
>                 ....
>                 }
>                 location /location1/ {.....}
>                 location /location2/ {.....}
> 
> Внутри конфига корня должны находиться редиректы, переводящие, в случае
> использования www.example.com/blah на www.example.com/location1 и в случае
> использования example.com/blah на example.com/location1
> 
> Нижеприведенная конфигурация не срабатывает нужным образом, то есть редирект
> всегда идет на первое имя в списке server_name, то есть, в данном случае, на
> example.com/location1
> 
> location / {
>                 if ($http_host ~ ^www\.example\.com$) {
>                         rewrite ^/$ /location1 permanent;
>                         break;
>                 }
>                 if ($http_host !~ ^www\.example\.com$) {
>                         rewrite ^/$ /location1 permanent;
>                         break;
>                 }
> }
> 
> Подскажите, какую переменную нужно использовать вместо http_host, чтобы
> получить желаемый результат, если это вообще возможно. Решение, которое
> имеется, меня не устраивает - продублировать полностью часть конфига,
> относящуюся к example.com для www.example.com и написать и там, и там
> редиректы на соответствующие домены.

http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#server_name_in_redirect


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list