Você pode usar dois locais, um correspondente ao URL mais curto. Por exemplo:
location ~ ^/app(?<code>/...)/acme/(?<stuff>.*)$ {
add_header Cache-Control "max-age=0, no-cache, no-store, must-revalidate";
rewrite ^ $code/acme/dev/$stuff break;
proxy_pass http://int-srv;
}
location ~ ^/app(?<code>/...)/acme$ {
rewrite ^ $code/acme/dev break;
proxy_pass http://int-srv;
}
O nome da variável $uri
já está definido pelo sistema, então você provavelmente deve usar um nome diferente.
O uso de um componente de URI com a diretiva proxy_pass
quando dentro de um local de expressão regular funciona claramente, mas não está documentado. Na verdade, a documentação afirma:
When location is specified using a regular expression. In this case, the directive should be specified without a URI
Então, meu exemplo usa o rewrite ... break
.