PHP - 当错误显示 404 并在单独的页面上为网站管理员显示错误时?

PHP - When error display 404 AND Show errors for webmaster on seperate page?

这是我昨晚想到的一个好奇心。 通常,当我在网站上更新我的 PHP 时,我会因正确缺少字母或符号而遇到错误。如果在编辑实时站点时这样做,访问者可能会看到错误。

所以这是一个想法,我还没有在 Google 上找到过,我希望它是可能的。

假设我搞砸了一个 3000 行的在线网站中的一行代码。

是否可以通过 PHP 告诉网站如果出现错误将所有网站访问者重定向到 "Error 404" 页面或 "Maintenance" 页面但在另一侧显示只有网站管理员才能看到的自定义页面上的错误?

基本上是这样。

我的网站出现错误。

网站访问者被重定向到:http://example.com/maintenance.php 为了让我看到我访问 http://example.com/webmasterError.php?

的实际错误

我知道可以将您的错误通过电子邮件发送给您,但这也是一个实验,我可能会在以后实施,或者如果其他人觉得有用,也可以实施。

如果我没记错ErrorDocument 500 /500.html可以重定向到维护页面,但是在特定页面上显示错误呢?

这就是我卡住的地方。

谢谢大家。我意识到这听起来像是初学者的想法,但我相信它有时会有用。

编辑

有些用户提到使用 localhost 进行编辑,这样错误只会在本地发生。我不能不同意这一点,但为了增加使用它的其他可能性,我们假设您正在使用 PHP 来包含来自另一个站点的外部文件。例如,如果您从 Facebook 图 API 获取用户信息,而 Facebook 决定删除您尝试访问的页面。您的站点可能会显示一条错误消息,指出无法打开流。这将发生在您的实时站点上。

您是在谈论 PHP 日志,例如当您开始一些无限循环或使用 try-catch 结构捕获错误时?

因为你可以用不同的方式来做:

做 2 个页面,一个简单的 404,给访问者,或者一个特殊的页面,其中读取 mysql table 存储所有未解决的错误。

连接到您的站点,但有一个特殊的 "admin account",并且在与用户相同的 404 上,添加错误日志。

所以我一直在努力。我现在将错误记录到一个日志文件中,我将在一个单独的页面上显示该文件。不过我 运行 遇到了问题。在测试如何处理我的错误时,我只是删除了一个“;”从我的一个数组中强制出错。当这种情况发生时,我的整个网站都崩溃了。这不是预期的。我确实希望该站点出现故障,但我也希望它能根据我的 .htaccess 文件显示某种类型的消息。

ErrorDocument 400 "<p>Error 500</p><p>This Page Is Down For Maintenance.</p>"
ErrorDocument 401 "<p>Error 401</p><p>Authorization Required.</p>"
ErrorDocument 403 "<p>Error 403</p><p>Forbidden.</p>"
ErrorDocument 404 "<p>Error 404</p><p>Not Found.</p>"
ErrorDocument 500 "<p>Error 500</p><p>Internal Server Error.</p>"

# supress php errors
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off

# enable PHP error logging
php_flag  log_errors on
php_value error_log  PHP_errors.log

我原以为当代码失败时会出现错误 500 警告,但我得到的是一个完全空白的页面。

虽然我的 404 错误没有问题,但我知道我的 .htaccess 文件正在被服务器正确读取。