captures in regex location
Vladimir Sopot
jd at artdesign.ru
Thu Mar 5 15:46:55 MSK 2009
Помимо описанного сервера есть еще секции
server {
server_name ~^([b|o])(\d)\.site;
.......
}
server {
listen *:80 default bind sndbuf=64k;
server_name site
..........
}
и добавление пустого сервера не исправило ситуацию.
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
>
>
More information about the nginx-ru
mailing list