我正在用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
)
答案 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]