我在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的本地试用了它。
答案 0 :(得分:3)
这是设计的 - 大括号在nginx.conf中是特殊的,如果用作正则表达式的一部分,那么如果你正在使用大括号,你必须在正则表达式周围使用双引号。 / p>
如果正则表达式包含“}”或“;”字符,则整个表达式应括在单引号或双引号中。
如,
rewrite "^/test[^a-zA-Z0-9]{2}/?$" https://www.google.com/ permanent;