robots.txt将$
作为特殊字符处理,用于标识模式的结尾。
然而,Googlebot正在解析一些JS模板中的hrefs,例如在script标签内:
<a href="${object.path}"> ${object.name}</a>
编码后,谷歌机器人尝试访问 mySite.com/$%7Bobject.path%7D
,但最终导致404错误。
为了解决这个问题,我想通过在robots.txt中添加匹配的指令来禁止爬取此类网址。
但是直接使用"$"符号不起作用:
Disallow: /$%7Bobject.path%7D$
我找到的唯一可行的解决方案是使用通配符字符:
Disallow: /*%7Bobject.path%7D$
虽然我真的很好奇是否有一种方法可以避免特定的$符号?
谢谢。
编辑:
在使用Google robots.txt测试工具进行更多测试后,我得到了一些奇怪的结果。根据这个工具的指示:
Disallow: /*%7Bobject.path%7D$
当其他工具告诉我它匹配时(如https://technicalseo.com/seo-tools/robots-txt/),/$%7Bobject.path%7D
无法正常工作。
在google的测试工具中有效的方法是在指令中使用未编码的括号:
Disallow: /*{object.path}$
我无法理解它的意思,所以我将两个版本都放在我的robots.txt文件中。
*
的 URL 需要屏蔽,看起来我们运气不佳。 - Hashbrown