我正在尝试使用ErrorDocument
指令在Apache 2.4.2和PHP 5.4.5(作为模块加载)中开发虚拟路径的处理程序:
<Directory "...">
...
ErrorDocument 404 /handler.php
...
</Directory>
只要使用的方法是GET或HEAD,它就像魅力一样。当方法是POST时,会出现麻烦。
使用POST时,在我的测试PC中,我设法通过file_get_contents('php://input')
获取输入流,即使Content-Type
标头设置为multipart/form-data
。在服务器PC中,即使类型为application/x-www-form-urlencoded
,内容始终为空。
我正在尝试获取原始POST数据,因为当脚本是此类重定向的结果时,$_POST
和$_FILES
为空。
有什么我想念的吗?也许在httpd.conf文件中有一些不同的设置? php.ini文件是一样的。我只是不知道从哪里开始。
更新:似乎差异是由于我用于测试目的的action
元素的<form>
属性。看起来,当action
设置为.php
文件并且位于根目录中时,脚本能够获取原始POST数据。
我想这与httpd.conf文件中使用的AddHandler
指令有关。