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

Использование файлов try_files nginx с поведением метода HTTP

Я очистил свою конфигурацию nginx, заменив все ifs с try_files но у меня есть последний, который меня беспокоит. Я не хочу, чтобы он вел себя как try_files, только если метод HTTP не DELETE. Удалить используется для удаления кешированного файла.

Спасибо за свет!

location / {
    if ($request_method ~ ^DELETE$) {
        rewrite ^/(.+)$ /index.php?url=$1 last;
    }
    if (-e $request_filename) {
         break;
    }
    if (!-e $request_filename) {
         rewrite ^/(.+)$ /index.php?url=$1 last;
    }
}

Кстати: чем больше я думаю об этом, тем более небезопасным кажется это ...

Решение, которое я нашел, - сохранить первый if но замените два других на лучший try_files.

location / {
    if ($request_method ~ ^DELETE$) {
        rewrite ^ /index.php last;
    }

    try_files $uri $uri/ /index.php?$args;
}