【发布时间】:2017-06-13 15:32:44
【问题描述】:
robots.txt 将$ 处理为一个特殊字符来标识模式的结束。
虽然,googlebot 正在从脚本标签中的 JS 模板中解析一些 href,例如:
<a href="${object.path}"> ${object.name}</a>
编码后,google bot 尝试到达mySite.com/$%7Bobject.path%7D,它以 404s 结束。
为了解决这个问题,我想通过向我的 robots.txt 添加匹配指令来禁止抓取此类网址。
但是“按原样”使用 $ 是行不通的:
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 中。
【问题讨论】:
-
我想阻止包含文字
*的网址,看来我们运气不好
标签: robots.txt googlebot google-crawlers