Usando o try_files do nginx com comportamento no método HTTP

2

Eu limpei minha configuração nginx substituindo todos os if s por try_files , mas eu tenho esse último que está me incomodando. Eu quero que ele se comporte como try_files somente se o método HTTP for não DELETE . Excluir é usado para remover o arquivo em cache.

Obrigado pelas suas luzes!

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;
    }
}

BTW: quanto mais eu penso sobre isso, mais parece ser bastante inseguro…

    
por greut 11.03.2012 / 20:26

1 resposta

1

A solução que encontrei é manter o primeiro if , mas substituir os outros dois pelo melhor try_files .

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

    try_files $uri $uri/ /index.php?$args;
}
    
por 12.03.2012 / 09:12