【问题标题】:Duplicated content on google. htaccess or robots.txt? [closed]谷歌上的重复内容。 htaccess 还是 robots.txt? [关闭]
【发布时间】:2012-10-11 05:09:56
【问题描述】:

在我的网站中,我有以下类别的 url 结构:

/category.php?id=6(id=6 用于互联网类别)

我的 SEO 友好网址是这样的:

/category/6/internet/

问题是它可以以任何这些形式访问,因此,我在 google 上获得了重复的内容。

所以,我想知道如何解决这个问题。

我应该在robots.txt 上禁止任何带有? 的网址吗?

如果是这样,我该如何正确设置它?

我应该在.htaccess 上进行“永久移动”重定向吗?

如果是这样,我该如何正确设置它?

我对类别的实际.htaccess 是这样的:

RewriteRule ^category/([^/]*)/([^/]*)/$ category.php?id=$1&name=$2 [L]

【问题讨论】:

  • 出于好奇,您为什么选择 /category/6/internet/ 作为 SEO 友好的 URL 而不是 /category/internet/
  • @msanford 可能是因为他需要类别 id 而无需根据名称进行查找。
  • @OmarJackman 我同意,但应该可以做后者,尤其是考虑到 SEO?也许没关系。
  • @msanford,我使用预制脚本作为基础,而我使用的这个脚本就是这样工作的。我想弄清楚如何从 url 中删除这个 id...我的帖子 url 就像 siteurl.com/12/slug-post-title/ 并且我正在研究如何从 url 中删除 id。如果你有任何想法......

标签: php .htaccess seo robots.txt canonical-link


【解决方案1】:

您只需要在页面的头部设置规范链接标签

http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html

http://support.google.com/webmasters/bin/answer.py?hl=en&answer=139394

它看起来像

<link rel="canonical" href="http://www.example.com/category/6/internet/"/>

在第 6 类页面上

您还可以通过添加 .htaccess 对 category.php 页面执行 301 重定向

RewriteRule ^category.php?id=([^&]*)&name=([^&]*) /category/$1/$2/ [R=301,L]

如果你不想走重写规则的路线,你可以将以下代码放在 config.php 的顶部:

if(preg_match('/^\/config\.php/', $_SERVER['REQUEST_URI'])){
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: /category/{$_GET['id']}/{$_GET['name']}");
    die();
}

任何一种方式都取决于你,但如果我是你,我会使用 rewriterule 选项重定向到我的 SEO 友好 URL

【讨论】:

  • rewriterule 选项在保留查询字符串变量方面有点棘手,但它仍然是一个可以改进的好解决方案
  • 你的重写规则和我的有什么区别?我需要用你的替换我的吗?
  • 不,你不会替换你的规则。您添加我的规则并保留您的规则。不同之处在于,如果一个人点击 category.php?blablah,它将执行 301 重定向到 seo 友好的 url。您当前拥有的规则不是重定向,它只是重写。
  • 好的,我明白了。在 James Pegg 的回答中,他说使用规范 url 比使用 htaccess 重定向更好,你也这么认为吗?
  • 我不能说哪个更好,在我看来这是一个偏好问题。如果他们遇到它,重写将阻止人们看到你丑陋的网址。它还可以防止人们分享你丑陋的网址。
【解决方案2】:

或者您摆脱非 SEO 网址。

  • 总是生成 SEO url(无论如何你都应该这样做)
  • 在 category.php 中检查 $_SERVER['REQUEST_URI'] 是否是 seo 之一,如果不是则重定向到它

【讨论】:

    【解决方案3】:

    我建议在文档标题中使用规范链接,以确保 Google 使用正确的 URL。 Google on Rel Canonical.

    实现起来非常简单,只需将其发布到页面的 HEAD 部分即可。

    <link rel="canonical" href="/your/url"/>
    

    Google 将规范链接视为 301 重定向,这意味着您不会遇到任何重复内容的问题。这也意味着大部分链接汁都被传递(在 90% 和 99% 之间)。如果您使用 robots.txt 或 .htaccess ,您屏蔽的页面将失去其所有 SEO 价值。

    只需确保对每个页面都执行此操作,因为这是特定于页面的规则。链接到域根实际上意味着您的所有页面都是 301 重定向到主页。

    【讨论】:

    • 你的意思是使用规范链接总是比使用 htaccess 或 robotsx.txt 更好?
    • 我可以同时使用这两种解决方案吗?规范链接和 htaccess 重定向?
    猜你喜欢
    • 1970-01-01
    • 2014-11-04
    • 2012-12-24
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多