robots.txt只允许root,不允许其他所有内容?

时间:2011-08-29 05:31:19

标签: robots.txt

我似乎无法让它工作,但它似乎非常基本。

我希望抓取域根目录

http://www.example.com

但没有其他任何内容可以抓取,所有子目录都是动态的

http://www.example.com/*

我试过

User-agent: *
Allow: /
Disallow: /*/

但Google网站站长测试工具表示允许所有子目录。

任何人都有解决方案吗?谢谢:))

2 个答案:

答案 0 :(得分:34)

根据Google's robots.txt documentation中的Backus-Naur表格(BNF)解析定义,AllowDisallow指令的顺序并不重要。所以改变订单真的不会帮助你。

相反,您应该使用$运算符来指示关闭路径。

测试此robots.txt。我确定它应该适合您(我还在Google Search Console中验证过):

user-agent: *
Allow: /$
Disallow: /

这样可以抓取http://www.example.comhttp://www.example.com/,但其他所有内容都会被屏蔽。

注意: Allow指令满足您的特定用例,但如果您有index.htmldefault.php,则不会抓取这些网址。< / p>

旁注:我只熟悉Googlebot和bingbot行为。如果您有目标的任何其他引擎,他们可能会或可能不会有关于如何列出指令的具体规则。所以,如果你想成为&#34;额外的&#34;当然,你总是可以交换AllowDisallow指令块的位置,我只是设置它们来揭穿一些评论。

答案 1 :(得分:8)

当您查看google robots.txt规范时,您可以看到:

Google,Bing,Yahoo和Ask支持有限形式的&#34;通配符&#34;对于路径值。这些是:

  1. *指定0个或更多任何有效字符的实例
  2. $指定网址的结尾
  3. 请参阅https://developers.google.com/webmasters/control-crawl-index/docs/robots_txt?hl=en#example-path-matches

    然后正如eywu所说,解决方案是

    user-agent: *
    Allow: /$
    Disallow: /