雅虎的robots.txt包含:
User-agent: * Disallow: /p/ Disallow: /r/ Disallow: /*?
最后一行是什么意思? (“不允许: /*?”)
如果这是一个Perl正则expression式:
*? Match 0 or more times, not greedily
http://perldoc.perl.org/perlre.html
然而robots.txt
遵循一个非常基本的语法,因此,
要匹配一系列字符,请使用星号(*)。 例如,要阻止访问以private开头的所有子目录:
User-agent: Googlebot Disallow: /private*/
要阻止访问包含问号(?)的所有url(更具体地说,任何以您的域名开头,后接任何string,后跟问号,后跟任意string的url):
User-agent: Googlebot Disallow: /*?
要指定匹配URL的结尾,请使用$。 例如,要阻止任何以.xls结尾的URL:
User-agent: Googlebot Disallow: /*.xls$
您可以将此模式匹配与Allow指令结合使用。 例如,如果一个? 表示会话ID,您可能希望排除包含它们的所有url,以确保Googlebot不会抓取重复的网页。 但是,以一个? 可能是您希望包含的页面的版本。 对于这种情况,你可以设置你的robots.txt文件如下:
User-agent: * Allow: /*?$ Disallow: /*?
Disallow:/ *? 指令将阻止任何包含? (更具体地说,它将阻止任何以您的域名开头的URL,后面跟随任何string,随后是问号,后跟任何string)。
允许:/ *?$指令将允许任何以? (更具体地说,它将允许任何以您的域名开头的URL,后跟一个string,后跟一个?,后面没有字符)。
所以基本上任何一种查询或search雅虎! 被机器人禁止。
expression式的支持混乱地没有在RFC中列出http://www.robotstxt.org/norobots-rfc.txt
Google提供了最好的说明, http://www.google.com/support/webmasters/bin/answer.py?hl = zh_CN&answer = 156449
*使它成为通配符。 那么,uri结尾呢? 会受到限制。