通过 Cloudflare 为页面设置规范 Canonical 标头

总有一些时刻,您会想要从一个域名迁移到另一个域名。但是,您的域名上或许部署了不同的服务,而通过传统的 meta 标签设置 canonical 链接将会是个繁重的工作,甚至是不可能的。

幸运的是,Google 也支持读取 Header 中的 Canonical 头(参考文档 ),因此您可使用 Cloudflare 的转换规则功能自动添加响应头,而不必手动修改每个 HTML 文件。同样,响应头对非 HTML 文件也有效。

标头格式

1
2
3
4
5
HTTP/1.1 200 OK
Content-Length: 19
...
Link: <https://www.example.com/downloads/white-paper.pdf>; rel="canonical"
...

转换规则:修改响应头

如果传入请求匹配:(http.response.code eq 200)

则修改响应头:设置动态 Link = concat("<", "https://", http.host, http.request.uri.path, ">; rel=\"canonical\"")

保险起见,这个规则仅会在响应代码为 200 时生效,以免错误地标记 404 或其他错误。它也会移除查询参数,以免标记不必要的 URL。

有关此处使用的动态变量和拼接函数,参考文档

提交: 7a5bc034 环境: production Hugo: 0.145.0 主题: 3.30.0-modified 时间: 1743559587944512
本博客内容仅供参考,作者不对其准确性、完整性或适用性作出任何明示或暗示的保证。因使用、引用或解读本博客内容所引发的任何直接或间接后果,作者概不承担任何责任。
本博客可能包含第三方转载内容,相关版权归原作者所有。转载内容仅为分享信息之目的,不代表作者观点。如涉及侵权,请联系删除。
使用 Hugo 构建
主题 StackJimmy 设计