ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

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

Re: captures in regex location



On Thu, Mar 05, 2009 at 01:57:49PM +0300, Vladimir Sopot wrote:

> Спасибо, но что-то оно не того
> 
>     server {
>         server_name ~^([b|o])(\d)z\.site;
> 
> #        if ($host ~* (.)(\d)) {
>             set $store_type $1;
>             set $store_id $2;
> #            }
> 
>         root    /wwwroot/site/$store_id/$store_type/;
>         }
> 
> В таком виде не работает (404), если убрать комментарии - все  
> становится на свои места. Забрать root внутрь location / { } тоже  
> ничего не дает. root  /wwwroot/site/$2/$1/ тоже не работает

Скорее всего, regex вообще не исполняется, потому что сервер один -
проверять нечего. Нужно добавить пустой сервер, чтобы nginx начал проверять
server_name:

       server { server_name _; }

> On Mar 5, 2009, at 1:17 PM, Igor Sysoev wrote:
> 
> >On Thu, Mar 05, 2009 at 12:14:55PM +0200, Andrew Sitnikov wrote:
> >
> >>>>А можно такое же ещё и для server_name?
> >>IS> Новый патч с поддержкой server_name.
> >>можно пример ?
> >
> >Наверное, как-то так:
> >
> >    server {
> >        listen  8000;
> >        server_name  ~^(?:www\.)?(.+)$;
> >
> >        location / {
> >            root   /path/to/$1;
> >        }
> >    }
> >
> >
> >-- 
> >Игорь Сысоев
> >http://sysoev.ru
> >
> >
> 

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



 




Copyright © Lexa Software, 1996-2009.