gpt4 book ai didi

rest - Nginx 更改请求从 PUT 到 POST

转载 作者:行者123 更新时间:2023-12-03 18:39:14 38 4
gpt4 key购买 nike

我正在将 nginx 用于我正在处理的 PHP REST API。为了完全 REST-ful,我正在使用 PUT/DELETE在适当的情况下请求。但是,PHP 不会解析 PUT 上的帖子正文请求 - 我需要这个特定场景。

我曾考虑过自己解析它,但是 a) 我宁愿让 PHP 用 C 来做,因为它比我能在 PHP 中提出的任何实现都要快得多,并且 b) 有很多边缘情况人们已经花了大量时间工作 - 我宁愿不重复这些努力。

在 API 方面,我已经添加了对阅读 X-HTTP-Method-Override 的支持。标题并在实际动词上可用时使用它。

我现在正在寻找的只是一种在 nginx 中获取 PUT 的方法。请求,并将其更改为 POST带有该 header 集的请求。

我觉得我已经找遍了所有地方,但找不到解决方案。任何事情都会有所帮助(即使您推荐不同的解析技术,因此我不必处理这个问题)。

最佳答案

Nginx 仅通过 REQUEST_METHOD 通知 FastCGI 请求方法参数。因此,您可以简单地覆盖该值并向 PHP 报告您想要的任何内容。您必须在 Nginx 配置中声明另一个变量,让我们将其命名为 $fcgi_method ,基于原来的请求方法:

map $request_method $fcgi_method {
default $request_method;
PUT POST;
}

(注意 map 部分应该在 http 级别,即与 server 块相同的配置级别)

然后你可以像这样在你的位置使用它:
fastcgi_param REQUEST_METHOD  $fcgi_method;

重要的是,此代码段在典型的 include fastcgi_params 之后或类似。

关于rest - Nginx 更改请求从 PUT 到 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15362038/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com