在mod_rewrite之后丢失“ php:// input”

时间:2018-10-06 22:52:09

标签: php mod-rewrite

我正在使用mod_rewrite通过以下apiHandler.php将所有api调用转发到.htaccess

RewriteEngine On
RewriteRule ^api/(.*)$ /apiHandler.php

问题是在apiHandler.php内部,我正在丢失php://input中的数据。

header("Access-Control-Allow-Headers: Content-Type");
header("Content-Type: application/json");

$requestBody = json_decode(file_get_contents("php://input"));
echo json_encode($requestBody);
exit();

每当我使用"http://localhost:80/api/testing"来访问我的api时,我都会从$requestBody中获取空值,但是当我使用"http://localhost:80/apiHandler.php"时,我会从$requestBody中获取正确的值。

doesn't work works

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果其他人对此问题或类似问题有疑问,则将带有http状态代码redirect的{​​{1}}标志添加到我的重写规则中对我来说是可行的。我看到了建议here

307