Php .htaccess mod_rewrite在请求URI不存在时删除POST数据';t以正斜杠结束

Php .htaccess mod_rewrite在请求URI不存在时删除POST数据';t以正斜杠结束,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我知道这已经被问过无数次了,但我一辈子都搞不明白为什么会发生这种事。我已经构建了一个返回JSON字符串的非常基本的API,但是如果端点没有以正斜杠结束,那么所有POST数据都将丢失。我的.htaccess文件如下: <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d Rewrit

我知道这已经被问过无数次了,但我一辈子都搞不明白为什么会发生这种事。我已经构建了一个返回JSON字符串的非常基本的API,但是如果端点没有以正斜杠结束,那么所有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>

重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则[E=HTTP_授权:%{HTTP:AUTHORIZATION}]
重写规则。api-main.php[L]
所以当我请求
http://example.com/api/endpoint/
POST数据被保留,但当我访问
http://example.com/api/endpoint
POST数据丢失


编辑:API的工作方式是查找名为的文件夹,因此真正的请求是试图查找
/API/endpoint/post.php
,这意味着名为
endpoint
的文件夹实际上存在。我在尝试访问一个不存在的端点并转储
$\u POST
参数时确认了这一点,该操作正常。。这是apache的限制吗?

请尝试关闭多视图。把这个放在.htaccess的顶部<代码>选项-多视图我添加了此选项,但似乎不起作用D:我当前的解决方法是将文件夹名称前缀为
\u
,然后将其添加到请求中。i、 e.
/api/test/this/
神奇地寻找
/api/\u test/\u this/
这是一种黑客攻击,但至少它是有效的。这可能是apache配置中设置的限制