【问题标题】:.htaccess not redirecting to 404.php instead shows page name.htaccess 不重定向到 404.php 而是显示页面名称
【发布时间】:2013-03-26 23:15:47
【问题描述】:

我正在尝试为我的网站创建一个自定义 404 页面,并且在使用此规则的根目录中有 .htaccess 文件

ErrorDocument 404 404.php //I want to redirect to 404

因此,当我将 home.php 之类的有效文件名更改为 home1.php 时,它不会重定向我,而是在该页面上回显 404.php

旁注:404.php 仅在根目录中

【问题讨论】:

  • 尝试给它一个尾部斜杠,所以:ErrorDocument 404 /404.php
  • @Nikola 试过但没有运气

标签: php .htaccess http-status-code-404


【解决方案1】:

应该这样做

RewriteEngine on
ErrorDocument 404 http://www.yoursite.com/404.php

【讨论】:

  • Vuhooooooooo 我在本地,directory/404.php 为我工作,+1,很快就会将您的答案标记为正确
  • 我也在本地,但如果我输入这样的 ErrorDocument 403 /index.php,它会将我重定向到 xampp index.php。我的.htaccess 在我的网站文件夹中。请帮忙..
【解决方案2】:

在您的.htaccess 文件中,您应该可以使用:

RewriteEngine on
ErrorDocument 404 /404.php

您可以使用此方法设置额外的错误文档,但我会将它们放在单独的错误目录中:

ErrorDocument 400 /errors/400.php
ErrorDocument 401 /errors/401.php
ErrorDocument 403 /errors/403.php
ErrorDocument 404 /errors/404.php
ErrorDocument 500 /errors/500.php

【讨论】:

    【解决方案3】:

    您可以使用 htaccess 对 404 个旧页面执行以下操作

    RewriteEngine on
    ErrorDocument 404 /404.php
    

    但我个人会推荐

    RewriteEngine on
    RewriteRule home.php /home1.php [R=301,L]
    

    因为这会执行从旧页面名称到新页面名称的 301 重定向,所以任何缓存的搜索引擎结果仍然会出现在正确的页面上,而不是遇到 404

    【讨论】:

      【解决方案4】:

      在我的情况下,使用 Ubuntu 发行版,如果指令 ErrorDocument 位于 htdocs 目录或其他位置的 .htaccess 中,则该指令无效:事实证明,它应该放在正确的 /etc/apache/sites-enabled/*.conf 中文件,在 <VirtualServer> 指令内(例如,如果网站提供 https 页面,则在指令 <VirtualHost *:443> 内)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-01
        • 1970-01-01
        • 2018-01-05
        • 2013-06-09
        • 1970-01-01
        • 2011-12-05
        • 1970-01-01
        相关资源
        最近更新 更多