2011-08-29 121 views
27

我似乎无法得到这个工作,但它似乎很基础。robots.txt只允许root用户,禁止其他所有内容?

我希望域根被抓取

http://www.example.com 

,但没有别的被抓取和所有子目录都是动态

http://www.example.com/* 

我试图

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

但谷歌网站管理员测试工具表示允许所有子目录。

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

+0

尝试删除“允许”行或将其放在“禁止”之后。爬行者应该在第一场比赛中停止。 –

+0

Brian是正确的,首先匹配规则,但要小心不要这样做,谷歌的“快速浏览”将无法加载任何图像或脚本,因此显示可能会改变。因此,也许您需要创建至少一个公共文件夹才能让您的主页在“快速浏览”中显示出来。 –

回答

-2
User-agent: * 
Allow: index.html (or /index.php) 
Disallow:/

应该做的神奇。

+0

index.html(或.php)不是根路径“/” –

25

根据Google's robots.txt documentation中的Backus-Naur Form(BNF)解析定义,AllowDisallow指令的顺序无关紧要。所以改变顺序真的不会帮助你。

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

测试此robots.txt。我敢肯定,它应该为你工作(我也验证了GWT):

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

这将使http://www.example.comhttp://www.example.com/被抓取,但一切阻挡。

注:Allow指令满足您的特定用途的情况下,但如果你有index.htmldefault.php,这些网址不会被抓取。

附注:我只是非常熟悉Googlebot和bingbot行为。如果还有其他引擎是你的目标,他们可能会或可能不会有关于如何列出指令的具体规则。所以如果你想要“额外”确定,你总是可以交换AllowDisallow指令块的位置,我只是设置它们来揭穿一些评论。

+0

只有根页面可以被抓取?或http://www.example.com/electr/pr.html也可以吗? – gmlvsv

相关问题