我已经清理了我的 nginx 配置,将所有if
s 替换为try_files
,但最后一个让我很烦。我希望它仅在 HTTP 方法是不是 DELETE
.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;
}
}
顺便提一句 :我越想越觉得,这似乎很不安全……
答案1
我发现的解决方案是保留第一个if
,但将另外两个替换为更好的try_files
。
location / {
if ($request_method ~ ^DELETE$) {
rewrite ^ /index.php last;
}
try_files $uri $uri/ /index.php?$args;
}