Re[2]: Проблема с rewrite
    andrey at mail.anti-aging-drugs.com 
    andrey at mail.anti-aging-drugs.com
       
    Tue Aug 29 20:16:31 MSD 2006
    
    
  
Здравствуйте, Igor.
Спасибо за идею с двумя серверами. Очень понравилось во всех
отношениях.
Такой вариант сработает так, как ожидается?
         server {
                 listen       81;
                 server_name  www.example.ws example.ws;
                 location / {
                         root   /home/example/data/public_html;
                         index  index.html index.htm;
                 }
         }
         server {
                 listen       81;
                 server_name  *.example.ws;
                 location / {
                         alias  /users/;
                         index  index.html index.htm;
                 }
         }
> On Tue, 29 Aug 2006, Andrey Kravchenko wrote:
>> Задача: нужно перенаправить все запросы с доменов вида XXX.example.ws
>> в конкретную папку.
>>
>> Делаю таким конфигом:
>>
>>        server {
>>                error_log  logs/example_error.log  debug;
>>                listen       81;
>>                server_name  example.ws *.example.ws;
>>                location / {
>>                        root   /home/example/data/public_html;
>>                        index  index.html index.htm;
>>                }
>>
>>                if ($host ~* .+\.example\.ws) {
>>                        rewrite ^(.*)$ /users$1 break;
>>                }
>>
>>        }
>>
>> При запросе на http://example.ws:81/ все работает.
>>
>> При запросах вида http://XXX.example.ws:81/ получаю 404 ошибку с таким
>> логом:
>>
>> 2006/08/29 19:09:19 [error] 44111#0: *4669382 open()
>> "/home/example/data/public_html/users/users/inde
>> x.htm" failed (2: No such file or directory), client:
>> 195.234.72.66, server: example.ws, URL: "/", ho
>> st: "qweqwee.example.ws:81"
>>
>> Замена break на last никак не влияет, а других проблемных мест не
>> нахожу. Куда смотреть?
>>
>> P.S. nginx/0.3.51
> Так как "if rewrite" описан на уровне сервера и запрос для
> XXX.example.ws:81/ обрабатывается так:
> 1) uri переписывается в /users/.
> 2) затем запрос попадает в "location /"
> 3) после этого перебираются индексы.
> Нужно, if поставить внутрь "location /" и описать для него нужный root.
> А вообще, я бы такую задачу решил бы двумя серверами:
>          server {
>                  listen       81;
>                  server_name  example.ws;
>                  location / {
>                          root   /home/example/data/public_html;
>                          index  index.html index.htm;
>                  }
>          }
>          server {
>                  listen       81;
>                  server_name  www.example.ws *.example.ws;
>                  location / {
>                          alias  /users/;
>                          index  index.html index.htm;
>                  }
>          }
> Игорь Сысоев
> http://sysoev.ru
-- 
С уважением,
 noreply                          mailto:noreply at mail.anti-aging-drugs.com
    
    
More information about the nginx-ru
mailing list