Максим, спасибо огромное! В итоге это именно то, что я и хотел получить.

>
>
> ---------- Forwarded message ----------
> From: Maksim Kulik <kulm...@gmail.com>
> To: nginx-ru@nginx.org
> Cc:
> Bcc:
> Date: Mon, 27 Jul 2020 09:54:02 +0300
> Subject: Re: Возможно ли остановить выполнение правил внутри
> location/выйти из location
> Можно после if делать внутренний редирект на другой локейшен (если,
> конечно, в вашем случае нет какой-то сложной дальнейшей обработки и вас
> интересует только то, что записано в location / ) при помощи error_page. То
> есть:
>
> error_page 420 = @special_location;
>
> location /test/lfs_lock_test.git/info/lfs/locks{
>  if ( $args ~ "lockservice=true" ) {
>   return 420;
>   }
>  rewrite ^/test/lfs_lock_test.git/(.*) /$1 break;
>  proxy_pass https://localhost:5002;
>  access_log  /var/log/gitlab/nginx/lfs_lock_access.log gitlab_access;
>  error_log   /var/log/gitlab/nginx/lfs_lock_error.log debug;
> }
>
> location @special_location {
>     proxy_cache off;
>     proxy_pass  http://gitlab-workhorse;
> }
>
> пн, 27 июл. 2020 г. в 09:16, Роман Буренков <panzerc...@gmail.com>:
>
>>
>> А какая была бы более правильная логика? Я изначально хотел сделать 2
>> правила с (?)(?!) но почему в таком regex`е у меня всё равно не тот url,
>> что я хотел просачивался в location (  location ~
>> (?^/.*.git/info/lfs/locks$)(?!^.*&lockservice=true$))
>>
>>
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить