【问题标题】:Redirecting to frontpage after 404 error in PHP在 PHP 中出现 404 错误后重定向到首页
【发布时间】:2011-02-19 03:49:21
【问题描述】:

我有一个 php 网页,现在在找不到页面时使用自定义错误页面。自定义错误页面包含在 PHP 中。

所以当有人输入一个不存在的 URL 时,我只包含一个错误页面,错误页面以:

<?php header("HTTP/1.1 404 Not> Found"); ?>

这也告诉爬虫该页面不存在。

现在我已经建立了一个新系统。当用户输入错误的 url 时,用户将返回首页并在首页上显示一条消息。我像这样重定向到首页:

header('Location:' . __TINY_URL . '/');

现在的问题是 PHP 只是发回了 200 代码,找到了页面。

如何将这两者混合在首页上创建 404 代码。

这总体上是呈现和错误页面的好方法吗?

【问题讨论】:

  • 这将是一个非常烦人的行为,恕我直言。您应该显示带有主页链接的 404 错误页面,而不是自动重定向。

标签: php error-handling http-status-code-404


【解决方案1】:

它给你一个 200 代码,因为你正在重定向到一个返回 200 代码的页面。我之前这样做的方法是发送 404 标头然后加载 404 视图。

header("HTTP/1.0 404 Not Found");
include("four_o_four.php");

【讨论】:

    【解决方案2】:

    发生错误后重定向不是一个好主意。对于喜欢输入/编辑 URL 的人来说,这尤其烦人,因为如果您打错字,您将被重定向到某个任意页面并且必须重新开始。

    我建议你根本不要这样做。如果你愿意,你可以让你的错误页面看起来像你的首页,尽管我认为这会有些混乱。

    【讨论】:

    • 是的,经过一番考虑,最好不要只重定向。我只是将事情保留原样。谢谢。
    【解决方案3】:

    您可以将其添加到您的 htaccess 中

    ErrorDocument 404 http://www.yourdomain.com/404.php
    

    ErrorDocument 404 http://www.yourdomain.com/index.php #Your homepage
    

    这将发送首字母 404 标头

    【讨论】:

      猜你喜欢
      • 2015-08-02
      • 2011-01-05
      • 2011-03-25
      • 2016-01-06
      • 1970-01-01
      • 1970-01-01
      • 2013-06-09
      • 2020-05-10
      • 2023-03-27
      相关资源
      最近更新 更多