【问题标题】:Robots.txt disallow by regex正则表达式禁止 Robots.txt
【发布时间】:2017-01-06 15:13:18
【问题描述】:

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

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

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

【问题讨论】:

    标签: seo robots.txt


    【解决方案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-robots(带有noindex 值)而不是robots.txt。支持的机器人仍会抓取 /cart 页面(并跟踪链接,除非您也使用 nofollow),但它们不会将其编入索引。

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

    【讨论】:

      【解决方案2】:

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

      disallow: /cart
      allow: /cartoon
      

      更多信息请访问:https://developers.google.com/webmasters/control-crawl-index/docs/robots_txt

      【讨论】:

      • 我可能有更多带有购物车前缀的页面
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-24
      • 2011-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-28
      相关资源
      最近更新 更多