HaPe
1
默认情况下,robots.txt 文件包含以下条目:
User-agent: *
# ...
Disallow: /u
此配置会阻止 Twitter 卡片中的图片。在 Twitter 验证器 上检查多个论坛的卡片时,无法显示徽标,并出现以下警告:
由 ‘twitter:image’ 元标签指定的图片 URL forum.[…].org/uploads/[…].png 可能受到站点 robots.txt 文件的限制,这将阻止 Twitter 获取该图片。
问题在于路径 /uploads 同样以 u 开头,因此会被 robots.txt 规则匹配。
我知道可以覆盖 robots.txt 文件,但认为修改默认设置会更好。遗憾的是,我对代码的理解尚不足以提交拉取请求(pull request)。
在覆盖时请注意,Twitter 检查 robots.txt 文件的频率低于检查页面实际 HTML 的频率,因此可能需要数小时才能生效。
1 个赞
devporto
(devPorto)
2
HaPe
3
是的,至少这能让 Twitter 卡片正常工作。希望不会产生意外的副作用。
您可以打开“允许在 robots.txt 中索引”设置,然后点击“覆盖 robots.txt"。接着找到 Disallow: /u 这一行,在末尾添加一个斜杠,使其变为 Disallow: /u/。Twitter 需要几个小时才能检测到这一更改。
2 个赞
devporto
(devPorto)
4
不确定我链接的帖子为何被删除。我会尝试一下。感谢提示!
2 个赞
HaPe
5
看来这曾是一个问题(参见 此讨论),随后又被重新引入。
在 此提交 中,带斜杠的 robots 规则被移除了,因为当时认为它们不再需要。后来,在 此提交 中,这些规则被重新引入,但末尾缺少了斜杠。
我整理了一个快速但粗糙的拉取请求,旨在修复默认的 robots.txt 文件:FIX: Do not block `uploads` path in robots.txt by ByteHamster · Pull Request #12349 · discourse/discourse · GitHub
1 个赞
sam
(Sam Saffron)
7
没有 CLA 我确实无法查看该 PR,但将 /u 锚定并改为 /u/ 听起来合理且安全。
2 个赞