我有一些公开的JSON
脚本/程序,用于从服务器快速收集信息。我使用 nginx 将它们公开为原始 url。所以给定以下位置:
location ~ ^/api/status/? {
rewrite ^(.*)$ /path/to/some/handler/wan.handler;
}
location ~ ^/api/status-lan/? {
rewrite ^(.*)$ /path/to/some/handler/lan.handler;
}
为什么我的呼叫nginx
匹配到该位置?所以我可以很好地查看我的输出,但是如果我查看我会得到位置。status-lan
status
/api/status/
/api/status-lan/
status
因为位置是一个正则表达式,而这个正则表达式:
表示“以 /api/status 开头,后跟可选的斜杠”,匹配之后的内容无关紧要。
配置应该是:
即匹配整个网址,而不仅仅是它的开头。如果有疑问,请打开重写日志,因为它会使正在发生的事情以及原因变得一目了然。