2

我有一个提供动态内容的页面

/for-sale

页面应始终至少有一个参数

/for-sale?id=1

我想禁止

/for-sale 

但允许

/for-sale?id=* 

不影响机器人抓取网站的能力或对 SERP 产生负面影响的可能性。

这可能吗?

4

2 回答 2

3

你想要的不能使用robots.txt

  1. Allow:尽管 M. Koster 编写的 RFC 建议如此(并且一些爬虫似乎支持它) ,但在机器人排除标准中没有这样的东西。
  2. 不支持查询字符串或通配符之类的东西,因此禁止“裸”版本将禁止所有内容。肯定不是你想要的。
  3. 里面的任何东西robots.txt都是完全可选的,只是一个提示。机器人根本不需要请求该文件或尊重您所说的任何内容。
  4. 您几乎肯定会发现一个或多个网络爬虫,其中任何或所有上述内容都是错误的,而您无法知道。

要解决实际问题,您可以将重写规则放入 Apache 配置文件中。有现成的代码可用于将带有查询字符串的 URL 转换为普通 URL(来自快速网络搜索的示例)。

(或者,您可以将id查询字符串留在原处。占您流量的 85% 的一个搜索引擎可以很好地吃掉它们,而占非 Google 流量的 90% 的另外两个搜索引擎也可以。
所以你的恐惧实际上只与没人使用的搜索引擎和垃圾邮件收割机有关。)

于 2012-11-26T17:33:43.443 回答
0

我认为这应该有效

Disallow: /for-sale    
Allow: /for-sale?id=*&*
Allow: /for-sale?id=*
于 2012-11-26T16:40:10.210 回答