Всем привет.
Наверное тема баянистая, но что-то никак не выходит каменный цветок :(
Итак, есть nginx 1.8.0 или 1.10.2, ну и регулярка в мапе не работает нивкакую:
map $http_host $new_host {
~*^resources\.(?P<dom1>.+) res.$dom1;
~*^(www\.)?(?P<dom>.+) proxy.$dom;
default $http_host; }
Читал многие форумы, у некоторых почему-то именованные группы работали. Но тут хоть убейся - не работает и все - вместо переменной просто строка $dom или $dom1 подставляется.
Вот цитата и мана (http://nginx.org/ru/docs/http/ngx_http_map_module.html):
Перед регулярным выражением ставится символ “~”, если при сравнении следует учитывать регистр символов, либо символы “~*” (1.0.4), если регистр символов учитывать не нужно. Регулярное выражение может содержать именованные и позиционные выделения, которые могут затем использоваться в других директивах совместно с результирующей переменной.
Ну про позиционные выделения уже было давно сказано, что работать никогда не будет. Но вот про именованное выделение как раз утверждалось, что должно работать..