HttpMapModule文档指出:
从1.0.4开始,不区分大小写的正则expression式可以通过在模式前添加〜*来使用。
举个例子:
map $uri $myvalue { /aa /mapped_aa; ~^/aa/(?<suffix>.*)$ $suffix; }
我更新到nginx/1.2.7使用这个,天真的正则expression式工作好,但variables不。 当我尝试上面的语法,我得到的错误:
nginx: [emerg] pcre_compile() failed: unrecognized character after (?< in "^/aa/(?<suffix>.*)$" at "suffix>.*)$"
我也尝试了下面的语法,但是没有一个工作:
~^(.*)$ $1; ~^(.*)$ \1;
但他们都没有工作。
有谁知道如何让variables在HttpMapModule正则expression式中工作?
(?P<name>pattern)是命名捕获组的标准PCRE语法 – 文档缺lessP
维基百科上的“命名子模式”部分指出(?<name>...)和(?'name'...)对PCRE 7.0起有效; 据推测你的nginx版本是与PCRE的早期版本链接的。