【问题标题】:WordPress - how to add a custom 500 server error page?WordPress - 如何添加自定义 500 服务器错误页面?
【发布时间】:2012-08-29 18:37:27
【问题描述】:

在 WordPress 中为错误页面创建自定义错误页面似乎很容易,即找不到 404 - 只需在主题目录中创建 404.php。

我想对服务器错误做同样的事情,比如说如果我的 WordPress 网站上的 CGI 脚本做了一些愚蠢的事情,比如除以 0。

我尝试在我的主题目录中创建一个 500.php 页面,但它似乎被忽略了。而是调用了主题目录中的404.php页面。

似乎 WordPress 以某种方式捕获了服务器错误并将其转换为“未找到”错误,然后使用 404.php

如果出现服务器错误 (500),而不是简单的页面未找到 (404) 错误,如何让 WordPress 转到不同的自定义页面?

在您告诉我将 ErrorDocument 500 /path-to-custom-error-page 之类的内容放入 .htaccess 文件之前,已经尝试过 - 它被 Web 服务器忽略,可能是因为 RewriteRule 指令在同一WordPress 使用文件来拦截和处理所有请求(不,ErrorDocument 指令是高于还是低于 WordPress RewriteRule 部分都没有关系)。

(注意:我尝试自己对此进行研究,但搜索结果被人们抱怨 getting WordPress 的服务器错误,而不是询问如何创建自定义页面来处理它们。)

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    WordPress 将永远无法针对服务器错误 (500) 显示您的自定义错误页面。您需要在 WordPress 之外创建一个 .html 或 PHP 页面。您的主机可能已经为您提供了一些帮助,其中许多都有一个文件夹,您可以在其中放置自定义错误页面,位于网站的根文件夹之外。

    【讨论】:

    • 如何在本地主机上做到这一点??
    【解决方案2】:

    从 WP 3.0 开始,您可以使用 wp_die_handler 过滤器覆盖 wp_die() 使用的标准错误页面。

    'wp_die' 和 'wp_die_handler' 位于wp-includes/functions.php

    【讨论】:

    • 这里有一个Gist,供任何需要作为“指南”的人使用。 :)
    【解决方案3】:

    ErrorDocument 500 … 在任何情况下都应该工作如果路径是正确的。关闭 WordPress 的重写规则,产生 500 错误,Apache 应该要么显示 /path-to-custom-error-page 要么说它找不到它。

    【讨论】:

    • 在我看来,这仅针对静态 500 页。就个人而言,我更喜欢声明静态(如果 apache 和您使用的技术之间存在问题)和动态(如果 apache 和底层技术之间的通信正常,并且在处理该请求时遇到错误并想要显示信息)与该请求的上下文相关)。
    • 如何关闭 Wordpress 重写规则?完全禁用永久链接?
    猜你喜欢
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    相关资源
    最近更新 更多