nginx重写正则表达式最小值,最大重复次数

时间:2016-05-02 21:48:17

标签: regex nginx url-rewriting

我在NGINX中使用这个重写。
rewrite ^/test[^a-zA-Z0-9]{2}/?$ https://www.google.com permanent; // doesn't work

服务器无法启动我在正则表达式中添加min {2}重复。当我删除服务器时,服务器会出现:
rewrite ^/test[^a-zA-Z0-9]/?$ https://www.google.com permanent; // this works

我已尝试过两个{min,max}参数。 我使用min重复时得到的错误如下。
directive "rewrite" is not terminated by ";"

此重写的上下文是server

有人能说出我错过了什么吗?是否需要安装一些模块才能使其正常工作? 我的prod NGINX版本是1.4,我在1.10的本地试用了它。

1 个答案:

答案 0 :(得分:3)

这是设计的 - 大括号在nginx.conf中是特殊的,如果用作正则表达式的一部分,那么如果你正在使用大括号,你必须在正则表达式周围使用双引号。 / p>

http://nginx.org/r/rewrite

  

如果正则表达式包含“}”或“;”字符,则整个表达式应括在单引号或双引号中。

如,

 rewrite "^/test[^a-zA-Z0-9]{2}/?$" https://www.google.com/ permanent;