在 nginx 中使用 DELETE 方法启用请求的正确方法

Ski*_*kip 3 rest nginx

我正在用 PHP 编写一个 RESTful 应用程序,并为 nginx 启用 DELETE、PUT 请求。

    location / {
        root   html;
        index  index.php index.html index.htm;
        dav_methods PUT DELETE;
    }
Run Code Online (Sandbox Code Playgroud)

当我使用 DELETE 方法执行 REST 请求时,我想在我的 index.php 中处理它 - nginx 删除了 html 文件夹。

告诉 nginx 将 DELETE 请求传递给我的 index.php 的正确方法是什么?

dad*_*ign 5

Nginx 不会禁用 PUT 或 DELETE 请求,但它不允许对文件夹索引进行这些请求。真的没有什么需要使用 nginx 启用的(您应该删除 dav_methods 行),但是您需要避免通过 index 指令访问您的 index.php,例如:

index  index.php index.html index.htm;
Run Code Online (Sandbox Code Playgroud)

而是使用 try_files 来匹配 index.php 文件,例如:

try_files $uri /index.php$is_args$args;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,nginx 不会抱怨您的 DELETE 方法。