首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >nginx regex引擎在URL重写不支持乱七八糟的括号?

nginx regex引擎在URL重写不支持乱七八糟的括号?
EN

Stack Overflow用户
提问于 2020-05-17 02:35:13
回答 1查看 647关注 0票数 1

如果我尝试使用squiggly括号,那么我的nginx配置在语法检查上似乎就失败了,尽管这个答案暗示nginx使用PECR,而这把小提琴显示squiggly括号在PECR下工作(尽管它在括号中确实说PECR .)。

所以,如果我把它放在我的服务器>位置块下面:

代码语言:javascript
运行
复制
location / {
    rewrite ^/([0-9]{4})$ /page.php;
}

我从nginx的语法检查器得到以下错误:

nginx: emerg指令“重写”不被";“in /etc/nginx/site终止-启用/默认:37 nginx:配置文件/etc/nginx/nginx.conf测试失败

如果我只处理掉这部分,然后把它留在这里:

代码语言:javascript
运行
复制
location / {
    rewrite ^/([0-9])$ /page.php;
}

那么一切都好了:

nginx:配置文件/etc/nginx/nginx.conf语法正常 配置文件/etc/nginx/nginx.conf测试是成功的

那么,这里到底是什么错误,以及如何让我的URL重写器接受URL重写规则中的具体4位数字呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-17 14:38:58

来自手册页 for rewrite

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

};字符在Nginx配置文件中有一个特殊的含义,因此正则表达式中的使用需要通过将表达式封装在引号中来保护。

locationifmap指令中出现的正则表达式(以及其他我可能忘记的)也是如此。

例如:

代码语言:javascript
运行
复制
rewrite "^/[0-9]{4}$" /page.php last;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61846285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档