【问题标题】:Redirect to 404 page or display 404 message?重定向到 404 页面或显示 404 消息?
【发布时间】:2011-09-05 13:26:10
【问题描述】:

我使用的是 cms,file-not-found 错误可以通过不同的方式处理:

  1. 页面不会被重定向,但错误消息将显示为内容(使用带有菜单/页脚的默认布局)。
  2. 页面将被重定向到error.php(页面看起来和1一样,但是地址改变了)
  3. 页面将被重定向到现有页面,例如站点地图.php

在搜索引擎方面是否有一种首选方法,或者这没有区别?

【问题讨论】:

  • 系统是否会记录该 URL 的历史记录,从而知道当前正确的 URL 是什么?如果是这样,那么只需进行内部重定向并呈现当前内容。否则,您应该提供 404 错误(这就是它的用途)。

标签: php content-management-system seo search-engine


【解决方案1】:

如果没有找到,那么您应该发出 404 页面。执行重定向会导致 302 代码,然后是“200 OK”,暗示有一些内容。一个 404 直接说“没有文件。别再烦我了”。

这样的事情会显示一个带有正确标题代码的 404 页面:

<?php
if ($page_not_found) {
   header('This is not the page you are looking for', true, 404);
   include('your_404_page.php');
   exit();
}

【讨论】:

  • 也许最好将header(...)exit() 放在404.php 脚本中。请记住,如果您通过函数include 您的404.php,则其父全局变量将无法在其中访问。
【解决方案2】:

不要重定向。

忘记搜索引擎。如果我输入了一个 URL 并打了一个小错字,然后你把我重定向了,那么我必须重新输入整个内容。

页面不会被重定向,但错误消息将显示为内容(使用带有菜单/页脚的默认布局)。

尽量明确这是一个错误页面。它不应该看起来像一个普通的页面。

页面会被重定向到error.php(页面看起来和1一样,但是地址变了)

没有。真的,真的没有。

页面将被重定向到现有页面,例如站点地图.php

HTTP 中有一些重定向状态代码,没有一个是“未找到,但您可能会喜欢这个”。

【讨论】:

  • 重定向不一定涉及重写您地址栏中的 URL。以网络上的绝大多数 404 页面为例。事实上,选项 (2) 是 baaaad。
  • 由于问题是关于服务器和客户端之间的交互,因此假设它正在讨论 HTTP 重定向似乎是合理的。不以任何方式向客户端公开的内部重定向不会产生影响。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-05
  • 2012-10-01
相关资源
最近更新 更多