Назад | Перейти на главную страницу

Как настроить nginx для использования двух локаций в определенных условиях

У меня две локации:

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

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

По сути, первый должен делать something-1 (только для чтения) для запросов MOVE и DELETE для файлов в каталоге / reg /, а второй должен делать something-2 для всех запросов ко всем файлам, включая файлы в каталоге / reg /. Дело в том, что мне нужно сделать что-то-2 для всех запросов / файлов, включая запросы MOVE и DELETE и файлы из каталога / reg /. Как я могу это сделать?

Я попытался скопировать код из второго места в первое, но запросы PUT, MCKOL и PROPFIND игнорируются. Я также пытаюсь использовать if (да, я знаю, если это зло, но я в отчаянии):

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

но ...- from-loc-2 обработано как-то некорректно.

Итак, есть идеи?