wildcard - robots.txt 中令人困惑的通配符:*+*、*%2B*、*%2b*
问题描述
这 3 行在此 robots.txt 中是什么意思(显然,我的意思是*+*
、*%2B*
和*%2b*
)?
Disallow: /collections/*+*
Disallow: /collections/*%2B*
Disallow: /collections/*%2b*
解决方案
原来的“标准”只定义
Disallow
此字段的值指定不被访问的部分 URL。这可以是完整路径,也可以是部分路径;不会检索以该值开头的任何 URL。例如,Disallow: /help
同时禁止/help.html
and/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
因为这些字符在路径模式中没有特殊含义。
推荐阅读
- protractor - 如何在 grunt-protractor-runner v5、protractor v4.0.14 和 node v8.13 中配置调试
- mysql - mysqldump 与 php 导出单个表
- django - Django - 组织/服务主要是静态网站的最佳方式?
- ios - 使用关系附加核心数据实体
- bash - 如何在函数中停止“* .h”的 Bash 扩展?
- javascript - 捕获部分 JSON 响应并保存到变量中?
- php - PHP 标头问题
- concatenation - 谷歌表格 - 如何连接满足条件的单元格
- python - 绘制索引稀疏的时间序列时如何避免matplotlib中的时间间隔?
- c# - 为什么命名空间的一部分算作命名空间