如何配置 nginx 以针对特定条件使用两个位置

如何配置 nginx 以针对特定条件使用两个位置

我有两个地点:

location ~ ^/[^/]+/[^/]+/reg/.*$ {
    dav_methods DELETE MOVE;
    ...
}

location ~ ^/[^/]+/[^/]+/.*$ {
    dav_methods PUT DELETE MKCOL MOVE PROPFIND;
    ...
}

基本上,第一个应该对 /reg/ 目录中文件的 MOVE 和 DELETE 请求执行 something-1(只读),第二个应该对所有文件(包括 /reg/ 目录中的文件)的所有请求执行 something-2。问题是我需要对所有请求/文件(包括 MOVE 和 DELETE 请求以及来自 /reg/ 目录的文件)执行 something-2。我该怎么做?

我尝试将代码从第二个位置复制到第一个位置,但 PUT、MCKOL 和 PROPFIND 请求被忽略。我还尝试使用 if(是的,我知道 if 很邪恶,但我很绝望):

location ~ ^/[^/]+/[^/]+/reg/.*$ {
    if ($request_method ~* MOVE) {
        ...-from-loc-1
    }
    ...-from-loc-2
}

但 ...-from-loc-2 的处理不知何故不正确。

那么,有什么想法吗?

相关内容