2015-10-13 94 views
0

我们遇到了一个问题,Google认为/product.html与/category/product.html相同。他们都是相同的内容,但两个单独的页面。我可以手动使用robots.txt或301重定向修复重复错误

Redirect 301 /product1.html https://www.website.com/category/product1.html 
Redirect 301 /product2.html https://www.website.com/category/product2.html 

但我们有成千上万的产品和新的将不断增加。

我想知道是否有做这样的事情的一种方式:

Disallow: /*.html$ 
Allow: /*/*.html$ 

在robots.txt文件?或者,如果有一种方法可以在.htaccess文件中使用301重定向来做到这一点。或者,如果Opencart有办法将/product.html自动301添加到/category/product.html(与此相关的问题是每个产品都有多个类别)。

感谢

回答

0

这里有两个事情可以做:

在你的.htaccess

一个普通的301重定向

RewriteEngine On 

RewriteRule ^category/(.+)$ $1 [L,R=301] 

在HTML模板

在您的产品模板中添加以下内容。这将有助于谷歌在重复内容时知道哪个是正确的页面。

<link rel="canonical" href="https://www.website.com/product1.html" /> 

谷歌不建议使用robots.txt为此目的:

虽然我们鼓励您使用上述任何一种方法,他们都不是必需的 。如果您没有指明规范网址,我们会标识我们认为最好的版本或网址为 。

请勿将robots.txt文件用于规范化目的。不要使用URL清除工具 进行规范化:它会从搜索中删除所有版本的 URL。不要指定不同的URL作为同一页面的 的规范(例如,使用rel =“canonical”的网页中的一个URL和相同的 页面的不同URL)。

https://support.google.com/webmasters/answer/139066?hl=en#2


根据您的意见,这是重定向example.com/规则*。html的,以example.com/category/ *。html的

RewriteEngine On 

RewriteRule ^([^/]+.html)$ category/$1 [L,R=301] 
+0

谢谢回复。 Canonicals对我们来说几乎是不可行的,我们已经尝试设置它们,但无法让它们正常工作。 Opencart创建同一页面的多种变体(例如,如果您键入example.com/randomletters/product.html它将不会404,但它会在该网址创建该页面),但会保留所有这些的标准标记;使规范标签无用。那么301重定向到底做了什么?它重定向类别/ *吗?我们正在寻求将example.com/*.html重定向到example.com/category/*。html –

+0

我明白了相反的意思。检查我的编辑,我已经添加了一个rewriterule以符合您的需求 –

+0

感谢您的编辑。那将product.html页面添加到category/correct?但所有这些product.html页面都在不同的类别中。我不认为我能用301做到这一点,除非我单独做每件产品 –