User-agent: *
Disallow: /p/
Disallow: /r/
Disallow: /*?
Run Code Online (Sandbox Code Playgroud)
最后一行是什么意思?(“不允许: /*?”)
如果它是 Perl 正则表达式:
*? Match 0 or more times, not greedily
Run Code Online (Sandbox Code Playgroud)
http://perldoc.perl.org/perlre.html
然而robots.txt
遵循一个非常基本的语法,因此,
要匹配字符序列,请使用星号 (*)。例如,要阻止访问所有以 private 开头的子目录:
Run Code Online (Sandbox Code Playgroud)User-agent: Googlebot Disallow: /private*/
要阻止访问所有包含问号 (?) 的 URL(更具体地说,以您的域名开头、后跟任意字符串、后跟问号、后跟任意字符串的任何 URL):
Run Code Online (Sandbox Code Playgroud)User-agent: Googlebot Disallow: /*?
要指定匹配 URL 结尾,请使用 $。例如,要阻止任何以 .xls 结尾的 URL:
Run Code Online (Sandbox Code Playgroud)User-agent: Googlebot Disallow: /*.xls$
您可以将此模式匹配与Allow指令结合使用。例如,如果一个 ? 表示会话 ID,您可能需要排除包含它们的所有网址,以确保 Googlebot 不会抓取重复的网页。但是以 ? 结尾的 URL 可能是您确实想要包含的页面版本。对于这种情况,您可以按如下方式设置 robots.txt 文件:
Run Code Online (Sandbox Code Playgroud)User-agent: * Allow: /*?$ Disallow: /*?
不允许:/ *?指令将阻止任何包含 ? 的 URL (更具体地说,它将阻止以您的域名开头、后跟任意字符串、后跟问号、后跟任意字符串的任何 URL)。
Allow: /*?$ 指令将允许任何以 ? 结尾的 URL。(更具体地说,它将允许任何以您的域名开头、后跟字符串、? 且 ? 后没有任何字符的 URL)。
所以基本上在 Yahoo! 上进行任何类型的查询或搜索。被机器人禁止。
令人困惑的是,RFC 中未列出表达式支持,http://www.robotstxt.org/norobots-rfc.txt
最好的描述由 Google 提供,http://www.google.com/support/webmasters/bin/answer.py? hl=en&answer=156449
归档时间: |
|
查看次数: |
42090 次 |
最近记录: |