【问题标题】:404 errors being redirected to the homepage instead of custom 404 page404 错误被重定向到主页而不是自定义 404 页面
【发布时间】:2017-07-11 23:48:01
【问题描述】:

我有一个托管在 Apache 服务器上的站点。我在.htaccess file 的顶部创建了一些自定义错误页面和以下文本:

ErrorDocument 404 404.html

ErrorDocument 500 500.html

ErrorDocument 401 401.html

我也试过了,

ErrorDocument 404 /404.html

ErrorDocument 500 /500.html

ErrorDocument 401 /401.html

htaccess 文件和自定义页面都在服务器的根目录中。 问题是当我输入一个垃圾 url(我希望看到我的自定义 404 页面)时,我只是被重定向到我的索引页面。

【问题讨论】:

    标签: .htaccess redirect url-rewriting http-status-code-404


    【解决方案1】:

    首先尝试您的服务器是否已正确设置以解析和处理 .htaccess 文件(即检查 AllowOverride + AccessFileName 指令是否正确)。例如,写一些你知道会起作用的东西,看看它是否真的被执行了(就像一个荒谬的重写规则)。此外,查找您的 httpd 日志文件是否有错误。

    如果正确执行,问题可能是您的服务器设置为不允许使用 .htaccess 文件进行各种覆盖。但是,您的语法基本上是正确的。

    【讨论】:

    • 感谢您的回复,您的建议听起来像是以某种方式访问​​服务器配置,但恐怕我没有。但是我知道我安装的 wordpress 博客成功地使用了重写规则。
    • 您当前使用的 htaccess 文件是否有可能将任何请求重定向到索引文件? Wordpress 可能会重定向任何内容,即使它完全是垃圾到 index.php,并希望您的 php 文件手动处理任何类型的 404 错误。
    • 嘿,谢谢!我删除了所有的 wordpress 行,并且 404 页面按预期交付......我想你不知道我怎样才能阻止 Wordpress 破坏它?我可以谷歌它,我只是想我会问你是否不介意:)
    • 就我而言,你不能真正做到这一点,因为 wordpress 只是需要它才能工作。正如我所说,您必须修改 index.php 或其他代码以手动检查 404 错误(实际上,正确的 Wordpress 安装应该自行处理)。原因很简单:Wordpress(和大多数其他软件)使用“虚拟”文件结构,因此您无法检查文件是否实际存在于硬盘上,您需要检查它是否存在于您的 虚拟文件概念。
    • 好的,感谢您的帮助。我将研究 php 方法。干杯。
    猜你喜欢
    • 2010-12-06
    • 2015-08-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    相关资源
    最近更新 更多