当请求URI没有以正斜杠结束时,.htaccess mod_rewrite删除POST数据

时间:2016-03-09 22:28:01

标签: php .htaccess mod-rewrite

我知道它被问了一百万次,但我不能为我的生活弄清楚为什么会这样。我已经构建了一个非常基本的API返回JSON字符串,但如果端点没有以正斜杠/结束,则所有POST数据都将丢失。我的.htaccess文件如下:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteRule . api-main.php [L]
</IfModule>

因此,当我请求http://example.com/api/endpoint/时,POST数据会被保留,但当我访问http://example.com/api/endpoint时,POST数据会丢失。

编辑:API的工作方式是查找具有名称的文件夹,以便真正的请求尝试查找/api/endpoint/post.php,这意味着名为endpoint的文件夹实际存在。我在尝试访问不存在/api/bob的端点并转储$_POST参数并且工作正常时已经确认了。这是apache的限制吗?

0 个答案:

没有答案