On Wed, Apr 22, 2020 at 06:59:21PM +0300, Maxim Dounin wrote: > Hello! > > On Wed, Apr 22, 2020 at 06:15:07PM +0300, Slawa Olhovchenkov wrote: > > > 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 срабатывает выдавая указанную > > переменную без каких-либо дополнительных побочных эффектов. > > Ну да, одно из возможных решений - отучить регулярные выражения в > map'е трогать $1..$N. С другой стороны - конфигурации вида > > map $uri $foo { > ~(.+) $1; > } > > тоже никто не отменял.
не понимаю возражения. я как раз о том, что внури map $1..$N локальные и не портят $1..$N в других местах. очевидно же, что вот этот $1 _вне_ map никому не нужен. $foo сформировался и никому ничего больше от этого map не требуется. > > > https://trac.nginx.org/nginx/ticket/564 > > > > > > Patches are welcome. > > > > 6 лет... > > Да, за 6 лет никто не сподобился даже попытаться прислать патч. > Что как бы позволяет предложить, что - не жмёт. или никто не может разобраться. _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru