ПРОЕКТЫ 


  АРХИВ 


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: Помогите с alias



Hello!

On Mon, Oct 19, 2009 at 03:25:50PM -0400, webscripter wrote:

> Gena Makhomed Пишет:
> -------------------------------------------------------
> > webscripter wrote:
> > 
> > > нужен третий вариант,
> > который не прибавляет
> > вначале www.
> >  > а наоборот убирает из
> > переменной $host
> > 
> > http://www.lexa.ru/nginx-ru/msg25038.html
> > 
> > -- 
> > Best regards,
> >   Gena
> 
> Пошел по пути, по которому обещали отписать от листа) Т.к. второй способ мне 
> не подходит. Но все равно не получилось.
> 
> location ~ ^/domains_data_fow/(.*)$ {
>             if ($host ~ ^www\.(.+)$) {
>                 set      $name    $1;
>              }
>             alias   /path/to/domains_data/$name/$1;
>         }
> 
> Получается что $1 в конце принимает значение второго регулярного выражения, а 
> надо чтобы первого. Если присвоить переменную и затем подставить ее вместо 
> $1, то nginx ругается на синтакс конфига
> the "alias" directive must use captures inside location given by regular 
> expression in /usr/local/nginx/conf/nginx.conf:111

Совет: перенесите неприличное слово из двух букв на уровень 
server{}.  Оно там станет более или менее приличным (по крайней 
мере не будет приводить к непредсказуемогу поведению), ну и 
работать будет как надо.

Второй совет: если вам ещё будут предлагать использовать конструкции с 
captures в имени сервера для конфигов сложнее чем приведён по 
ссылке выше - сразу интересуйтесь где берут патч чтобы оно при 
внутренних редиректах не ломалось.

Maxim Dounin



 




Copyright © Lexa Software, 1996-2009.