【问题标题】:Why does my wordpress 404 page appear blank?为什么我的 wordpress 404 页面显示为空白?
【发布时间】:2011-01-12 07:12:49
【问题描述】:

我已经建立了一些主题,并注意到 404 页面一旦上传到我的服务器。永远不会出现。他们总是在我的本地主机设置上这样做,甚至其他人的主题也有效。

我认为它没有理由不工作,我为漂亮的永久链接启用了 mod_rewrite,但 404 重定向似乎不想工作。

这是一个已知问题吗?

Streamline.net 是我的烂服务器吗?

谁能帮忙?

【问题讨论】:

    标签: wordpress .htaccess http-status-code-404 wordpress-theming


    【解决方案1】:

    您可以尝试在 .htaccess 中设置自己的错误文档,这可能会覆盖您的主机设置,并指向名为“错误”的静态 wordpress 页面或主题中的 404.php

    ErrorDocument 401 http://mydomain.com/error/
    ErrorDocument 403 http://mydomain.com/error/
    ErrorDocument 404 http://mydomain.com/error/
    ErrorDocument 500 http://mydomain.com/error/
    

    编辑:您还可以在主题的 404.php 文件(是的,它很难看...)中重定向到您的静态错误页面:<?php Header("Location: http://mydomain.com/error/"); ?>

    如果这不起作用,我不知道。

    【讨论】:

    • 已经在根目录中创建的 .htaccess wordpress 中尝试过此操作,还尝试使用此代码在主题目录中设置 .htaccess - 不幸的是,一切都无济于事。
    • 重定向似乎有效,非常感谢。我仍然无法解释为什么 404 模板能够重定向但不能显示自己。很奇怪,但这个修复会覆盖我!干杯!
    【解决方案2】:

    Streamline 遇到同样的问题。我猜这是由于这个主机 1.3 使用的 apache 版本。

    【讨论】:

      【解决方案3】:

      如果您的主题模板中已经有一个 404.php 文件,如果没有创建一个。然后按照以下步骤操作。

      第一步:在任何编辑器中打开现有的 404.php 文件,或在主题目录中新建一个。

      第二步:复制/粘贴下面提供的代码到您的 404.php 文件中(确保您的 404.php 文件为空白)

      //404 Redirect to home in WordPress.
      //Sara Domini
      //301 Permanently Redirect
      //http://2experts.net
      header("HTTP/1.1 301 Moved Permanently");
      header("Location: ".get_bloginfo('url'));
      exit();
      

      对我和其他作品来说就像一个魅力:))

      【讨论】:

        【解决方案4】:

        发生这种情况是相当奇怪的。如果 WordPress 正在使用漂亮的永久链接,那么 Apache 正在做它的工作 - 将任何实际不存在的 URL 重写为 WordPress。

        然后由 WP 决定请求是否不匹配,如果是,则显示 404。

        也许 Streamline 搞砸了,通过读取 WP 踢出的“404 Not Found”标头并摆弄输出?

        【讨论】: