NGINX 在匹配部分位置时出现问题
NGINX issues when matching partial location
我是 NGINX 世界的新手,正在努力学习。
我要匹配:
- /我的页面
- /mypage.php
但不是
- /我的网页网站
或除前 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) optional
$
- 表示字符串结束(uri 必须在这里结束)
您可以使用在线工具来创建和检查您的正则表达式。例如,this one.
我是 NGINX 世界的新手,正在努力学习。
我要匹配:
- /我的页面
- /mypage.php
但不是
- /我的网页网站
或除前 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) optional$
- 表示字符串结束(uri 必须在这里结束)
您可以使用在线工具来创建和检查您的正则表达式。例如,this one.