【问题标题】:Page not found or redirect? [closed]找不到页面或重定向? [关闭]
【发布时间】:2012-02-05 00:53:15
【问题描述】:

我的重写规则:

RewriteRule ^articles/([a-z]+)/([0-9]+)/?$ /index.php?page=articles&cat=$1&id=$2 [L]
RewriteRule ^articles/([a-z]+)/?$ /index.php?page=articles&cat=$1 [L]
RewriteRule ^([a-z]+)/?$ /index.php?page=$1 [L]

所以,在 index.php 文件中,我检查 page 是否存在。如果找到,则回显该页面。不然怎么办?

  • 发送重定向到主页?
  • 使用 header() 发送 404 页面未找到响应?
  • 回显“找不到页面”之类的消息?

哪个好?我想知道其中的搜索引擎友好选项。

【问题讨论】:

  • SEO 与编程无关。
  • 谢谢。那么我应该在哪里发布与 seo 相关的问题?
  • 在 SE 的 SEO 下标记了 2233 个问题!所以看起来与seo相关的问题在这里发布了很多。我必须在 WSE 中发布其他问题吗?

标签: php mod-rewrite seo


【解决方案1】:

您绝对应该有一个返回正确 404 错误代码的 header()。这将确保 google 不会将您的错误页面编入索引。使用没有 404 代码的消息提供标准页面称为软 404 错误,标准(和谷歌)不鼓励这样做。

请看这里:http://support.google.com/webmasters/bin/answer.py?hl=en&answer=181708

但没有必要向访问者显示丑陋的纯文本错误,或者依赖他浏览器的默认错误页面。即使您输出了 404 代码,您仍然可以提供一个漂亮的页面,可能带有指向您主页的链接,或者带有相关资源。

【讨论】:

  • 谢谢。你的意思是,我应该放置一个自定义的 404 页面并将其设置为默认错误页面,以便在发送 404 标头时弹出?像这样:header("HTTP/1.0 404 Not Found");?
  • 这取决于您的内容管理系统的工作方式。但原则上,您发送一个 404 标头,然后包含您的错误页面并退出...
  • 我已将页眉(通用)、页脚(通用)和页面内容分开。所以,我应该检查页面是否存在。如果没有,则回显页眉,然后页面内容将是 404 找不到页面(自定义消息),最后回显页脚。是这样吗 ?但这会在谷歌中索引该页面。不是吗?
  • 是的,就像你说的那样。如果您输出 404 标头,谷歌将不会为您的页面编制索引。这正是该标题的重点:向机器显示这不是页面而是错误。另一方面,页面的内容是供您的人类访问者使用的。
  • 一个重要的一点是在原始页面返回404错误,而不是重定向到错误页面。
【解决方案2】:

优先

  • 使用 header() 发送 404 页面未找到响应?(硬 404)

这是理想的,因为实际上找不到该页面。

  • 回显“未找到页面”之类的消息? (软 404)

这很好,因为您试图在内部找到该页面,但并不完全理想。

不要这样做:

  • 发送重定向到主页?

    由于这没有描述任何信息,例如,

    • 页面是否未找到。
    • 是否有任何内部错误。
      等

通过这个:404 errors soft vs. hard 你会明白的。

【讨论】:

  • 谢谢。如果用户转到www.mysite.com/hello,则该页面不存在。因此,我回显了一条消息,例如“找不到页面”。但这将被谷歌索引。正确吗?
  • @VppMan 是的。它将被谷歌索引。最好做一个硬 404。而不是软 404,即使谷歌索引它。您可以为您的硬 404 放置一个自定义的 404 错误页面。
  • 谢谢。如果我创建一个自定义 404 页面,如何在 PHP 中使用它?发送重定向到该页面?或者我可以在服务器配置中更改设置吗?
  • @VppMan 我想你正在使用 apache。在 apache 的 .conf 文件中,设置 ErrorDocument 404 /missing.html 将 /missing.html 更改为您的自定义页面。只需在此处指定路径即可。
  • 谢谢。设置自定义页面后,这是我应该用来发送 404 错误的代码:header("HTTP/1.0 404 Not Found");。正确吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-10
  • 2012-06-22
  • 2015-06-09
  • 1970-01-01
  • 2013-03-31
相关资源
最近更新 更多