<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">ср, 22 апр. 2020 г. в 21:14, Slawa Olhovchenkov <<a href="mailto:slw@zxy.spb.ru">slw@zxy.spb.ru</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wed, Apr 22, 2020 at 06:59:21PM +0300, Maxim Dounin wrote:<br>
<br>
> Hello!<br>
> <br>
> On Wed, Apr 22, 2020 at 06:15:07PM +0300, Slawa Olhovchenkov wrote:<br>
> <br>
> > On Wed, Apr 22, 2020 at 05:39:23PM +0300, Maxim Dounin wrote:<br>
> > <br>
> > > Hello!<br>
> > > <br>
> > > On Wed, Apr 22, 2020 at 04:31:02PM +0300, Slawa Olhovchenkov wrote:<br>
> > > <br>
> > > > А это нормально что переменные $1..$N не являются локальными для<br>
> > > > регэкспа?<br>
> > > > <br>
> > > > Т.е. если например у нас есть rewrite и там что-то захватывается, а в<br>
> > > > результате используется еще и результат map с регэкспом, то $1 будет<br>
> > > > браться из map.<br>
> > > > Что-то мне кажется это не логично.<br>
> > > <br>
> > > Это следствие того, что regexp и использование $1..$N могут быть <br>
> > > разнесены, например, в конструкциях вида (цитата из <br>
> > > <a href="http://nginx.org/r/if" rel="noreferrer" target="_blank">http://nginx.org/r/if</a>):<br>
> > > <br>
> > >     if ($http_cookie ~* "id=([^;]+)(?:;|$)") {<br>
> > >         set $id $1;<br>
> > >     }<br>
> > > <br>
> > > Для rewrite'а это, конечно, не нормально, надо править.  Про это <br>
> > > даже есть тикет:<br>
> > <br>
> > не для rewrite, а для map.<br>
> > вроде как логично ожидать, что map срабатывает выдавая указанную<br>
> > переменную без каких-либо дополнительных побочных эффектов.<br>
> <br>
> Ну да, одно из возможных решений - отучить регулярные выражения в <br>
> map'е трогать $1..$N.  С другой стороны - конфигурации вида<br>
> <br>
>     map $uri $foo {<br>
>         ~(.+) $1;<br>
>     }<br>
> <br>
> тоже никто не отменял.<br>
<br>
не понимаю возражения.<br>
я как раз о том, что внури map $1..$N локальные и не портят $1..$N в<br>
других местах. очевидно же, что вот этот $1 _вне_ map никому не нужен.<br>
$foo сформировался и никому ничего больше от этого map не требуется.<br>
<br>
> > > <a href="https://trac.nginx.org/nginx/ticket/564" rel="noreferrer" target="_blank">https://trac.nginx.org/nginx/ticket/564</a><br>
> > > <br>
> > > Patches are welcome.<br>
> > <br>
> > 6 лет...<br>
> <br>
> Да, за 6 лет никто не сподобился даже попытаться прислать патч.  <br>
> Что как бы позволяет предложить, что - не жмёт.<br>
<br>
или никто не может разобраться.<br></blockquote><div><br></div><div>если бы у кого-то реально подгорало, уже бы замотивировал всех причастных.<br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div></div>