我似乎无法让这个工作,但它似乎非常基本.
我希望抓取域根目录
http://www.example.com
Run Code Online (Sandbox Code Playgroud)
但没有别的东西可以被抓取,所有子目录都是动态的
http://www.example.com/*
Run Code Online (Sandbox Code Playgroud)
我试过了
User-agent: *
Allow: /
Disallow: /*/
Run Code Online (Sandbox Code Playgroud)
但Google网站站长测试工具表示允许所有子目录.
有人有解决方案吗?谢谢 :)
eyw*_*ywu 40
根据Google的robots.txt文档中的Backus-Naur表单(BNF)解析定义,Allow和Disallow指令的顺序无关紧要.所以改变订单真的不会帮助你.
相反,您应该使用$运算符来指示路径的关闭.
测试这个robots.txt.我确定它应该对你有用(我也在GWT中验证过):
user-agent: *
Allow: /$
Disallow: /
Run Code Online (Sandbox Code Playgroud)
这将允许http://www.example.com并被http://www.example.com/抓取,但其他一切都被阻止.
注意:该Allow指令满足您的特定用例,但如果您有index.html或default.php,则不会对这些URL进行爬网.
旁注:我只是熟悉Googlebot和bingbot行为.如果您有目标的任何其他引擎,他们可能会或可能不会有关于如何列出指令的具体规则.因此,如果你想要"额外"肯定,你可以随时交换Allow和Disallow指令块的位置,我只是设置它们以揭穿一些评论.
当您查看google robots.txt规范时,您会看到:
Google,Bing,Yahoo和Ask支持路径值的有限形式的"通配符".这些是:
然后正如eywu所说,解决方案是
user-agent: *
Allow: /$
Disallow: /
Run Code Online (Sandbox Code Playgroud)