关于nginx location匹配的问题
配置nginx使其支持php-fpm时,发现一个问题,如下图配置
此时访问http://host/server.php是没问题的
但是当我去掉了~后
如图
此时访问http://host/server.php出问题了
请教为什么一定要有~号呢
我原先的理解是,/server.php这个uri能够匹配location php且匹配的长度比location / 长(3:1),所以在这种情况下有没有~ 都是一样的,结果却出人意料
求教大神,这是怎么回事?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
以=开头表示精确匹配
如 A 中只匹配根目录结尾的请求,后面不能带任何字符串。
^~ 开头表示uri以某个常规字符串开头,不是正则匹配
~ 开头表示区分大小写的正则匹配;
~* 开头表示不区分大小写的正则匹配
/ 通用匹配, 如果没有其它匹配,任何请求都会匹配到
没有见过你这种都不符合的情况。
参考nginx配置location总结及rewrite规则写法