首页 > 解决方案 > robots.txt 中令人困惑的通配符:*+*、*%2B*、*%2b*

问题描述

这 3 行在此 robots.txt 中是什么意思(显然,我的意思是*+**%2B**%2b*)?

Disallow: /collections/*+*
Disallow: /collections/*%2B*
Disallow: /collections/*%2b*

标签: wildcardrobots.txt

解决方案


原来的“标准”只定义

Disallow
此字段的值指定不被访问的部分 URL。这可以是完整路径,也可以是部分路径;不会检索以该值开头的任何 URL。例如, Disallow: /help同时禁止/help.htmland /help/index.html,而Disallow: /help/不允许/help/index.html但允许 /help.html

这意味着,所有路径都按字面意思匹配(没有字符具有模式匹配中的特殊含义)。

但它也指出

它不是由标准机构支持或由任何商业组织拥有的官方标准。它不是由任何人强制执行的...


更新的和现代的谷歌文档解释了

Google、Bing、Yahoo 和 Ask 支持路径值的有限形式的“通配符”。这些是:

  • *指定任何有效字符的 0 个或多个实例。

  • $指定 URL 的结尾。

所以

Disallow: /collections/*+*
Disallow: /collections/*%2B*
Disallow: /collections/*%2b*

将禁止所有以开头的路径/collections/后跟包含的任何内容

  • +
  • %2B
  • %2b

因为这些字符在路径模式中没有特殊含义。


推荐阅读