首页 > 解决方案 > 为什么 POST 请求可以在从 NGINX 到 PHP 的途中更改为 GET

问题描述

我有下一个非常奇怪的情况:

  1. 向服务器发送 POST 请求。
  2. 在 nginx 日志中,我看到类似的内容:IP-ADDRESS - ce5c8fb7-0a40-4c4e-9b8e-779cae54d4ad-1522849217932 [11/Jun/2018:11:37:38 +0000] "POST /unsubscribe HTTP/1.1" 400 69 " -" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36"
  3. 因此,nginx 看到了类似 POST 的请求
  4. 但如果我这样做echo $_SERVER['REQUEST_METHOD'],我将有“GET”作为输出。
  5. 这只发生在一个端点“/取消订阅”上。对于所有其他端点 POST 请求都可以正常工作。
  6. 配置中没有与“取消订阅”字相关的规则。

我确实尝试了很多变体,测试,尽可能关闭缓存。但仍然是相同的行为。可能有人知道在这种情况下尝试什么会有好处,或者之前有人遇到过同样的问题?

PS 在服务器上我有 Ubuntu + Nginix + PHP 7.0。不确定,但可能与 PHP 版本有关,因为前段时间我们从 5.6 升级到 7.0

标签: phpnginxpostphp-7

解决方案


推荐阅读