﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	uname	nginx_version
1044	map break regexp numbered references	higuita		"when creating a rewrite like this:


{{{
rewrite ^/site/([^/]*)/[^-]*-(.*)$   /site/${site}/$1/$2 last;
}}}
 

where the $site is set by a map, i get /site/mysite// as result from a request to 

http://localhost/site/static/small/grid-633.jpg

If i remove the ${site}, i get /site/small/633.jpg

If i replaced the numbered references by named references:


{{{
rewrite ^/site/(?<first>[^/]*)/[^-]*-(?<second>.*)$   /site/${site}/${first}/${second} last;
}}}
 

everything works fine.


As the map documentation reports, map is evaluated the moment the variable is used and it is resetting the numbered references.

So either keep any numbered references when calling map, or change the documentation about this pitfall and point the user to named references instead.

right now only expert users, that understand how nginx work internally may know about this and normal users generate broken configs and run away from map because they can not understand it... most will use many ""if"" as workaround, generating other problems later on"	defect	closed	minor		other	1.10.x	duplicate			"Linux 154314e1156e 4.7.0-040700-generic #201608021801 SMP Tue Aug 2 22:03:09 UTC 2016 x86_64 Linux
"	"nginx version: nginx/1.10.1
built with OpenSSL 1.0.2h  3 May 2016
TLS SNI support enabled
configure arguments: --prefix=/var/lib/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/run/nginx/nginx.pid --lock-path=/run/nginx/nginx.lock --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_v2_module --with-ipv6
"
