如何在robots.txt中逃避$ Disallow指令?

时间:2017-01-27 20:40:22

标签: robots.txt googlebot google-crawlers

robots.txt将$作为特殊字符处理,以识别模式的结尾。

尽管如此,googlebot正在解析脚本标签中的JS模板中的一些href:例如:

<a href="${object.path}"> ${object.name}</a>

对其进行编码后,google bot会尝试到达mySite.com/$%7Bobject.path%7D,并以404结尾。

要解决此问题,我想通过向robots.txt添加匹配指令来禁止抓取此类网址。

但是使用$&#34;按原样#34;不起作用:

Disallow: /$%7Bobject.path%7D$

我找到的唯一可行解决方案是使用通配符:

Disallow: /*%7Bobject.path%7D$

尽管如此,如果有办法逃脱这个特殊的$符号,我真的很好奇吗?

感谢。

修改

在使用google robots.txt测试工具进行一些测试后,我有一些奇怪的结果。根据这个工具指令:

Disallow: /*%7Bobject.path%7D$ 

赢得了/$%7Bobject.path%7D的工作,而其他工具告诉我匹配(例如https://technicalseo.com/seo-tools/robots-txt/)。

在谷歌的测试工具中有效的方法是在指令中添加未编码的括号:

Disallow: /*{object.path}$

我无法理解它,所以我将这两个版本都放在我的robots.txt中。

1 个答案:

答案 0 :(得分:0)

Googlebot和其他抓取工具支持$,但它不是机器人排除协议标准的一部分。

该标准不包含任何转义字符,Google的文档也没有提及它。

您是否尝试过使用美元编码?:

Disallow: /%24%7Bobject.path%7D$