SEO:处理重复的网址但同一页面

时间:2014-10-09 13:36:10

标签: php .htaccess url url-rewriting seo

我正在用PHP运行电子商务网站。我把规则重写为,

RewriteRule ^[A-Za-z0-9-_]+/([A-Za-z0-9-_]+)/?$ product.php?seo_id=$1 [NC,L] #
RewriteRule ^([A-Za-z0-9-_]+)/?$ catalog.php?seo_id=$1 [NC,L] #

有些产品会有重复的链接,但我希望它们在google中作为我喜欢的链接。

离。

http://example.com/laptop/dell-1055
AND 
http://example.com/products/dell-1055

在我的网站中,我经常使用这两个网址。这两个网址都应该有效,但我希望首选网址(http://example.com/laptop/dell-1055),这些网址应该在Google中编入索引而不是第二个网址。

如何实现它。 (我知道它是通过规范或301重定向实现的,但我不知道如何实现它)

注意:两个URL都使用单个页面处理(例如product.php

2 个答案:

答案 0 :(得分:2)

在HTML的顶部,此文件会生成一个规范的网址<link>标记:

<link rel="canonical" href="http://example.com/laptop/dell-1055" />

答案 1 :(得分:0)

您需要拥有301条规则,这些规则会将所有旧的新网址重定向到具有永久重定向的新网址,这将迫使搜索引擎仅缓存漂亮的网址:

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} \s/+catalog\.php\?seo_id=([^\s&]+) [NC]
RewriteRule ^ laptop/%1? [R=301,L]

RewriteCond %{THE_REQUEST} \s/+product\.php\?seo_id=([^\s&]+) [NC]
RewriteRule ^ products/%1? [R=301,L]

RewriteRule ^[\w-]+/([\w-]+)/?$ product.php?seo_id=$1 [L,QSA]

RewriteRule ^([\w-]+)/?$ catalog.php?seo_id=$1 [L,QSA]