Re: переменные $1

Slawa Olhovchenkov slw на zxy.spb.ru
Ср Апр 22 15:15:07 UTC 2020


On Wed, Apr 22, 2020 at 05:39:23PM +0300, Maxim Dounin wrote:

> Hello!
> 
> On Wed, Apr 22, 2020 at 04:31:02PM +0300, Slawa Olhovchenkov wrote:
> 
> > А это нормально что переменные $1..$N не являются локальными для
> > регэкспа?
> > 
> > Т.е. если например у нас есть rewrite и там что-то захватывается, а в
> > результате используется еще и результат map с регэкспом, то $1 будет
> > браться из map.
> > Что-то мне кажется это не логично.
> 
> Это следствие того, что regexp и использование $1..$N могут быть 
> разнесены, например, в конструкциях вида (цитата из 
> http://nginx.org/r/if):
> 
>     if ($http_cookie ~* "id=([^;]+)(?:;|$)") {
>         set $id $1;
>     }
> 
> Для rewrite'а это, конечно, не нормально, надо править.  Про это 
> даже есть тикет:

не для rewrite, а для map.
вроде как логично ожидать, что map срабатывает выдавая указанную
переменную без каких-либо дополнительных побочных эффектов.

> https://trac.nginx.org/nginx/ticket/564
> 
> Patches are welcome.

6 лет...


Подробная информация о списке рассылки nginx-ru