如何解决匹配部分位置时 NGINX 出现问题 说明
我是 NGINX 世界的新手,正在努力学习。
我想匹配:
- /mypage
- /mypage.php
但不是
- /mypagewebsite
或前 2 场比赛以外的任何其他比赛
如果我使用 location ^~ /mypage {}
它也匹配 /mypagewebsite
并且我试图避免具有完全匹配的 2 块,例如 location = /mypage {}
和 location = /mypage.php {}
如何只匹配前 2 个位置而不匹配其他位置?
解决方法
您可以使用正则表达式 (regex) 做到这一点。
location ~ ^/mypage(?:\.php)?$
说明
-
~
- Tells nginx that we are using regex -
^
- 标记字符串的开始(uri 必须从这里开始) -
(
和)
- 括号用于分组 -
?:
- 这些符号意味着 nginx 不应该记住括号内的内容 -
?
- 表示整个组 (.php) 可选 -
$
- 表示字符串的结尾(uri 必须在此处结束)
您可以使用在线工具来创建和检查您的正则表达式。例如,this one。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。