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 03:46:55PM +0300, Vladimir Sopot wrote:
> Помимо описанного сервера есть еще секции
>
> server {
> server_name ~^([b|o])(\d)\.site;
> .......
> }
>
> server {
> listen *:80 default bind sndbuf=64k;
> server_name site
> ..........
> }
>
> и добавление пустого сервера не исправило ситуацию.
У меня для
server {
listen 8000;
server_name ~^([b|o])(\d)z\.site;
root /wwwroot/site/$1/$2/;
}
в логах такая ошибка:
[error] 58504#0: *1 open() "/wwwroot/site/b/1/dir/index.html" failed (2: No
such file or directory), client: 127.0.0.1, server: ~^([b|o])(\d)z\.site,
request: "GET /dir/index.html HTTP/1.0", host: "b1z.site"
То есть, путь "/wwwroot/site/b/1/dir/index.html" формиурется правильно.
Кстати, "|" в "([b|o])" - лишняя.
> On Mar 5, 2009, at 2:43 PM, Igor Sysoev wrote:
>
> >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
> >
> >
>
--
Игорь Сысоев
http://sysoev.ru
|