假设位置块需要处理如下 URL
- /test_api/group_1/version(多个 URL 属于此组。例如,/test_api/aaa/version、/test_api/bbb/version)
- /test_api/group_2/revision(其他几个 URL 属于此组。例如,/test_api/yyy/revision、/test_api/zzz/revision)
我如何选择性地重写“/test_api/group_1/version”,同时将“/test_api/group_2/revision”传递给位置块内的默认服务器?如果这不可能,还有其他方法可以实现相同的目标。以下是我当前的非歧视性位置块。
location /test_api {
types { application/json json; }
root /usr/local/www/data;
rewrite "/test_api/([^/]+)/version(.*)/?$" /api_response/test_api_$1.json break;
}
答案1
当你创建两个位置时
location /test_api/group_1/version {
...
}
location /test_api {
...
}
最长的那个将始终匹配,因此你的 group_2 将不会匹配第一条规则