在“ErrorDocument 404”中获取时$_POST为空(nginx + apache + mod_php)

在“ErrorDocument 404”中获取时$_POST为空(nginx + apache + mod_php)

我尝试将网站从旧服务器转移到新服务器,但遇到了一个问题。两个服务器上的 PHP/JS 代码相同,但在新服务器上却不起作用 - AJAX 请求中的 $_POST 数据为空。

一些细节:

旧服务器:Debian 7,Nginx + Apache(mod_php 7.4)

新服务器:Ubuntu 22.04,Nginx 1.18.0 + Apache 2.4.52(mod_php 7.4)

请求的地址 /basket/add/。它不存在,.htaccess 包含规则 ErrorDocument 404 /404.php

404.php 包含逻辑 URL 的路由器,它应该读取 $_POST 并将产品添加到购物篮。我var_dump($_POST);在 404.php 的最开头添加了它,但 $_POST 始终为空数组()。

当相同的请求发送到现有文件(而不是 404.php)时,$_POST 会被正常填充。

因此,问题出在 .htaccess 指令中ErrorDocument 404 /404.php。旧服务器可以正确查看 404.php 中的 $_POST,但新服务器则不行。

我真的不明白为什么会发生这种情况。有什么想法吗?

相关内容