Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache ErrorDocument不适用于PHP 500错误_Apache_Errordocument - Fatal编程技术网

Apache ErrorDocument不适用于PHP 500错误

Apache ErrorDocument不适用于PHP 500错误,apache,errordocument,Apache,Errordocument,我在.htaccess文件中设置了大量的ErrorDocuments错误,例如404、401、403等,这些错误都重定向到我的错误页面,但是当PHP报告500时,为500错误设置的ErrorDocument永远不会显示。500代码被发送到浏览器,输出为空。我是否需要做一些特殊的事情来启用500个错误文档以与PHP一起使用 我的指令是这样的: ErrorDocument 401 /errorpage.php?error=401 ErrorDocument 403 /errorpage.php?er

我在.htaccess文件中设置了大量的
ErrorDocuments
错误,例如404、401、403等,这些错误都重定向到我的错误页面,但是当PHP报告500时,为500错误设置的
ErrorDocument
永远不会显示。500代码被发送到浏览器,输出为空。我是否需要做一些特殊的事情来启用500个错误文档以与PHP一起使用

我的指令是这样的:

ErrorDocument 401 /errorpage.php?error=401
ErrorDocument 403 /errorpage.php?error=403
ErrorDocument 404 /errorpage.php?error=404
ErrorDocument 500 /errorpage.php?error=500
我查看了php.ini,没有看到任何明显会覆盖Apache设置的内容,我的httpd.conf中也没有
ErrorDocument
指令。我应该去别的地方看看吗


提前感谢。

我不相信Apache会让您运行PHP文件,因为错误页面可能会生成错误。尝试将您的500错误呈现到HTML文件中,并将您的指令指向该文件。

您可能需要在Apache conf链的前面添加ErrorDocument声明。如果将其添加到vhost conf中,则可能不会调用它。

请参阅对一个非常类似问题的回答。基本上,PHP几乎不会触发500。在使用codeigniter和Imagick时,我碰巧遇到了同样的问题。当出现问题时,imagick设置了一个500 HTTP错误,在这种情况下,Codeigniter的自定义500消息没有显示

我通过在所有Imagick函数中添加try-catch来解决这个问题。检查是否出现了从500开始的问题,然后在那里添加try-catch。至于

 ErrorDocument 500 /errorpage.php?error=500

,我在网上读到的加载与一些人声称这解决了他们类似的问题的加载相同,其他人说这没有帮助,因为Apache已经将控制权交给了PHP。可能一些PHP代码正在将头设置为500,这可能会导致浏览器显示其自定义的500错误消息

感谢您的建议,但是使用.html文件没有任何区别,浏览器仍然会收到500个响应,并且没有内容。