3

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

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

我的 SEO 友好网址如下:

/category/6/internet/

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

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

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

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

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

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

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

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

3 回答 3

2

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

请参阅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]

如果您不想走 rewriterules 的路线,可以将以下代码放在 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

于 2012-10-10T19:47:17.910 回答
1

或者您摆脱非 SEO 网址。

  • 始终生成 SEO url(无论如何你都应该这样做)
  • 在 category.php 检查 $_SERVER['REQUEST_URI'] 是否是 seo 之一,如果不是重定向到它
于 2012-10-10T19:53:20.420 回答
0

我建议在文档头中使用规范链接,以确保 Google 使用正确的 URL。谷歌在 Rel Canonical 上

这很容易实现,只需将其发布到页面的 HEAD 部分即可。

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

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

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

于 2012-10-10T19:56:31.463 回答