【问题标题】:redirecting to homepage rather than 404 error page!重定向到主页而不是 404 错误页面!
【发布时间】:2010-12-06 15:25:11
【问题描述】:

我正在使用 PHP。我有一个如下所示的 .htaccess 文件,它重定向到主页而不是 404 错误页面:/这里有什么问题?感谢帮助!非常感谢!

ErrorDocument 404 /new/err404.html
RewriteEngine On
RewriteBase /new/

RewriteRule ^login.html$ index.php?s=login&a=loginDo [QSA,L]
RewriteRule ^logout.html$ index.php?s=login&a=logoutDo [QSA,L]
RewriteRule ^([^/]*).html$ index.php?s=$1 [QSA,L]
RewriteRule ^members/([^/]*)$ index.php?s=profile&username=$1 [QSA,L]
RewriteRule ^([^/]*)/$ index.php?s=listing&search[cityString]=$1 [QSA,L]
RewriteRule ^([^/]*)/([^/]*)/$ index.php?s=listing&search[neighborhoodString]=$2 [QSA,L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*).html$ index.php?s=details&seo_friendly=$3 [QSA,L]

【问题讨论】:

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


    【解决方案1】:

    只需通过您的主页代码进入重定向页面。使用您的主页代码更改重定向页面中的代码。因此,您将拥有一个具有相同代码的 /index.html 和一个 /404.html - 您的主页。呵呵

    【讨论】:

      【解决方案2】:

      通过更改域和页面名称在您的 .htaccess 中尝试此行

      ErrorDocument 404 http://www.yoursite.com/pagename.html
      

      【讨论】:

        【解决方案3】:

        我认为一个更重要的问题是,您为什么要将 404 重定向到您的主页?

        用户需要知道页面是死的/坏的,谷歌也是如此。您需要调查 404 的来源。

        将您的 404 重定向到您的主页会告诉 Google 您的链接是正常的,并且您可能会损害您的排名,具体取决于重定向的链接数量,因为 Google 可能会将其视为重复内容。

        假设您设置了一条影响 5,000 个页面的规则 - 然后 google 出现并看到 5,000 个 URL 具有相同的确切内容 - 主页,它如何知道这些应该是 404 开头的?

        修复您的 404。如果您有需要重定向的合法内容,那么请将它们重定向到他们的新页面或最接近的可用语义页面。

        【讨论】:

        • 我想你误解了这个问题,提问者说他​​们想使用 404 页面,而不是让它重定向到主页。
        【解决方案4】:

        您为什么要尝试对 404 错误使用重写规则?为什么不直接使用:

         ErrorDocument 404 /new/err404.html
        

        和第一行一样吗?您是否希望 404 保持相对于用户尝试访问的目录?

        【讨论】:

          【解决方案5】:

          没有路径前缀/new/ 的URL 路径或错误文档/new/err404.html 就是err404.html。这将与您的第三条规则相匹配。

          您可以扩展该规则并排除此类错误文档:

          RewriteCond $1 !^err[45][0-9][0-9]$
          RewriteRule ^([^/]*)\.html$ index.php?s=$1 [QSA,L]
          

          【讨论】:

          • 非常感谢秋葵。我刚刚将 /new/err404.html 更改为 err404.html 。现在它不会重定向到主页,但它也不会重定向到 404 页面。它只是在内容中写入“err404.html”,并且 url 保持错误:/
          • @artmania:你不应该重定向错误。响应 404 状态码与重定向的含义不同。
          • 我刚刚编辑到 ErrorDocument 404 blabla.com/new/err404.html 并且工作正常。但正如我在论坛上读到的那样,使用域进行重定向并不好......
          • 我认为您不应该在 404 上重定向。不存在的页面不应试图假装它们存在!如果不出意外,这对 SEO 没有帮助,Google 建议不要这样做。
          • @artmania:如果服务器找不到请求的文档,它将发送 404 状态代码并提供为 404 错误指定的文档,在您的情况下为文档 /new/err404.html。这是适当的行为。如果您现在想要重定向到不同的东西(如果您在ErrorDocument 中指定绝对 URL,就会发生这种情况),服务器将使用 302 状态代码而不是适当的 404 状态代码。 302 表示“请求的资源确实存在,但使用以下位置检索它”。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-06
          • 2023-03-10
          • 1970-01-01
          • 2023-03-27
          • 1970-01-01
          相关资源
          最近更新 更多