Помогите с alias

Maxim Dounin mdounin at mdounin.ru
Tue Oct 20 01:39:25 MSD 2009


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





More information about the nginx-ru mailing list