Robots.txt禁止使用正则表达式

时间:2017-01-06 15:13:19

标签: seo robots.txt

在我的网站上,我有一个购物车页面,即:http://www.example.com/cart,另一个用于动画片:http://www.example.com/cartoons。我应该如何在robots.txt文件上书写以仅忽略购物车页面?

购物车页面不接受网址上的结尾斜杠,所以如果我这样做: Disallow: /cart,它也会忽略/cartoon

我不知道它是否可能,它会被像/cart$这样的蜘蛛机器人正确解析。我不想强制Allow: /cartoon因为可能是具有相同前缀的其他页面。

2 个答案:

答案 0 :(得分:1)

original robots.txt specification中,这是不可能的。它既不支持Allow,也不支持Disallow值内具有特殊含义的任何字符。

但是一些消费者支持更多的东西。例如,Google gives a special meaning to the $ sign,它表示URL路径的结尾:

Disallow: /cart$

对于Google,这将阻止/cart,但不阻止/cartoon

不具备此特殊含义的消费者will interpret $ literally,因此他们会屏蔽/cart$,但不会屏蔽/cart/cartoon

因此,如果使用此功能,则应在User-agent中指定机器人。

替代

也许你对抓取很好但只是想阻止索引?在这种情况下,您可以使用meta - robotsnoindex值)代替robots.txt。支持机器人仍会抓取/cart页面(并关注链接,除非您还使用nofollow),但他们不会将其编入索引。

<!-- in the <head> of the /cart page -->
<meta name="robots" content="noindex" />

答案 1 :(得分:0)

您可以明确允许和禁止这两个路径。如果长度较长,更具体的路径将采用更高的先例:

disallow: /cart
allow: /cartoon

有关详细信息,请访问:https://developers.google.com/webmasters/control-crawl-index/docs/robots_txt