Re: Директива map и regex capturing groups не дружат

Максим maxout.mail на gmail.com
Чт Окт 20 16:10:03 UTC 2016


Если нет возможности поставить 1.11.0, то нужную логику можно  реализовать
на нескольких map + set

2016-10-20 17:30 GMT+07:00 YuriV <nginx-forum на forum.nginx.org>:

> Всем привет.
> Наверное тема баянистая, но что-то никак не выходит каменный цветок :(
> Итак, есть 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), если регистр
> символов
> учитывать не нужно. Регулярное выражение может содержать именованные и
> позиционные выделения, которые могут затем использоваться в других
> директивах совместно с результирующей переменной.
>
> Ну про позиционные выделения уже было давно сказано, что работать никогда
> не
> будет. Но вот про именованное выделение как раз утверждалось, что должно
> работать..
>
> Posted at Nginx Forum: https://forum.nginx.org/read.
> php?21,270436,270436#msg-270436
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20161020/ab7d916a/attachment.html>


Подробная информация о списке рассылки nginx-ru