Bad side effect of (even unmatched) nested regex locations in regex locations with anonymous captures with try_files/alias
Maxim Dounin
mdounin at mdounin.ru
Thu Aug 2 10:42:49 UTC 2012
Hello!
On Thu, Aug 02, 2012 at 10:38:15AM +0200, Christoph Schug wrote:
> Hello!
>
> I have another interesting scenario ;-) Given is following minimized
> test case
>
> server {
> listen 80;
> server_name t2.example.com;
>
> root /data/web/t2.example.com/htdoc;
>
> location ~ ^/bar(/.*)? {
> alias /data/web/t2.example.com/htdoc/foo$1;
This is expected to break once between location matching and
accessing a file (which will evaluate variables in the "alias"
directive) any regexp matching will happen.
Not only nested regex location matching (which is kind of
explicit), but even lookup of a map variable (with regexps) will
be enough to break things.
And this is why it's not recommended to use enumerated captures
except for very simple configurations (or "rewrite" directive,
where use of enumerated captures immediatly follows regexp
matching). Use named captures instead and you'll be fine.
[...]
Maxim Dounin
More information about the nginx
mailing list