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中。
答案 0 :(得分:0)
Googlebot和其他抓取工具支持$
,但它不是机器人排除协议标准的一部分。
该标准不包含任何转义字符,Google的文档也没有提及它。
您是否尝试过使用美元编码?:
Disallow: /%24%7Bobject.path%7D$