【问题标题】:Custom 500 Error page Linux Shared Hosting自定义 500 错误页面 Linux 共享主机
【发布时间】:2018-03-29 19:03:11
【问题描述】:

发生 500 Internal Server Error 时如何显示自定义页面?

我创建了一个名为“500.php”的页面。
然后将以下行添加到我的“.htaccess”文件中以处理错误:

ErrorDocument 500 /500.php

以下行测试/触发 500 错误:

e

但会显示默认的 500 页面 - 不是我的自定义页面。

我尝试将第一行编辑为此(整个 URL):

ErrorDocument 500 http://danispringer.com/500.php

然后我收到“重定向过多”错误。

我该怎么做?

【问题讨论】:

  • 如果要使用 ErrorDocument,则不需要使用 RewriteRule。
  • ErrorDocument 500 /500.php 就够了。
  • 本身没有必要“触发”错误。如果以及何时脚本错误作为服务器错误。 Apache 接管并自动查找 ErrorDocument 500。
  • 就是这样 ;-) 测试它的唯一方法是使用条件语句来说明一些不起作用的东西,以及一些有用的东西。所有能被捕获的Apache指令,都会被handle请求分别触发和处理。
  • 将您的服务器设置设置为不显示错误但记录它们,然后故意在某处遗漏一个缺少的分号;这将触发服务器错误。最好我能补充一下,我们刚刚触发了“请避免在 cmets 中进行长时间的讨论。你想自动将此讨论转移到聊天中吗?”。这个问题可能会被模组关闭和/或触发“太健谈,转移到聊天......”。你需要让所有这些都沉入其中并尝试一些东西;-) 干杯。我相信我已经回答了一些。

标签: php apache .htaccess mod-rewrite shared-hosting


【解决方案1】:

首先,如果不是绝对必要,我不会使用 php 文件,因为如果您遇到 php 问题,您也无法显示您的 500.php 页面。

我会创建一个文件夹 /errors 并将我所有的错误文件放在这个文件夹中,例如:

/errors/404.html
/errors/403.html
/errors/500.html

现在,如果您正在寻找测试 500 错误的解决方案,那么只需创建一个文件夹(例如 test500folder)并将无效的 .htaccess 文件放入此文件夹 /test500folder/.htaccess

abc

现在,如果您打开 example.com/test500folder/,您可以测试 500 错误

但删除:RewriteRule ^ - [R=500] 和其他所有内容,但仅使用

ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.html

在您的主 htaccess 文件中进行测试。

编辑:

所以我假设您或您的提供商已经为您所有的 ErrorDocumentes 配置了一个位置,但是这些文件现在被删除了。如果可能,您必须准确地替换此文件或在您的提供程序后端配置一些其他文件。

【讨论】:

  • 我在为 500folder/ 创建的空 htaccess 中添加了两行。第一行有e 触发错误,第二行有ErrorDocument 500 /folder500/500.html。说得通?我应该访问哪个 URL?
  • 请查看更新后的 GitHub:github.com/DaniSpringer/website(不幸的是我在访问 /folder500 时仍然看到默认错误页面)
  • 是的!我只在 GitHub 中将其命名为不带点,以便您查看。
  • 一个.htaccess 将只适用于一个站点,而不是整个服务器。就像您不想使用 php 文件来报告服务器错误一样,您也不希望单个站点负责报告服务器错误,因为问题可能出在站点的配置上。
猜你喜欢
  • 2018-02-07
  • 2017-04-16
  • 2015-08-26
  • 2015-11-18
  • 2018-05-26
  • 2019-01-18
  • 2021-10-18
  • 2019-12-08
  • 1970-01-01
相关资源
最近更新 更多