【发布时间】:2015-09-26 00:59:16
【问题描述】:
在 PHP 中是否可以更改死亡白页 (WPOD) 的 HTML? 目标是进行此更改,以便所有未经测试(未通过 if-else 阻止)的致命错误都将显示此自定义页面。
例如,当所需的文件不存在时,运行以下命令会返回一个 WPOD:
require 'some-non-existing-file.php';
但我想返回:
<!doctype html>
<html>
<head>
<title>500</title>
<style>body { background-color: #000; }</style>
</head>
<body></body>
</html>
我尝试设置我的 <VirtualHost> 以包含和 ErrorDocument 指令:
ErrorDocument 500 /500.html
但是根据this answer的说法,Apache开始处理PHP后,就不会再触发Apache Error文档了。
【问题讨论】:
-
使用Nginx,你可以轻松搞定。
-
我不确定您是否可以使用自定义错误文档来处理 500 错误
-
@RamRaider 当然可以。 httpd.apache.org/docs/2.2/custom-error.html
-
500 是由您的 PHP 文档中的语法错误之类的事情引起的。为什么您还要为它创建自定义文档而烦恼.. 只需修复错误而不是担心您的用户会做什么见。
-
@Adelphia 对于错误来自代码的简单生态系统中的应用程序,我完全同意;但是当处理更复杂的基础设施时,包括多个应用程序一起通信并通过多个代理/网络/服务器,而您无法完全控制这些基础设施,并非所有问题都可以预料。拥有一个用户友好的页面作为备份比 WPOD 更好。此外,这个问题很容易适用于其他状态代码。