555 字
3 分钟
给 Cloudflare Pages 添加标头文件

为什么需要 _headers 标头文件#

必应、谷歌等搜索引擎会使用爬虫定期抓取互联网上的网站。通常情况下,我们会给部署在 Cloudflare Pages 上的项目配置一个自定义域,例如使用 www.example.com 指向默认的 example.pages.dev 。在搜索引擎的爬虫看来,如果这两个网站下没有配置拒绝索引的 robots.txt 或标头,那么搜索引擎会毫不犹豫的索引这两个相同内容的网站。为了使搜索引擎只收录我们希望的 www.example.com ,排除默认的 example.pages.dev ,我们需要给项目添加 _headers 标头文件。

Cloudflare 官方文档 中已经对 _headers 文件的使用给出了详细的说明。

如何添加#

如果是直接上传文件的项目,通常只需要在根目录下新建一个 _headers 纯文本文档(没有扩展名),并输入以下内容:

https://:project.pages.dev/*
  X-Robots-Tag: noindex

保存,上传,部署,配置网站就像呼吸一样自然。

但是,居然报错了,返回了403错误,大意是服务器拒绝了 API 调用的请求,这就很离谱了。我明明是在官网上部署的服务,为什么还会报错?这么离谱的 bug 早该修修了。

所以,只能通过链接 GitHub 的方式来部署项目,在项目根目录添加 _headers 文件,上传,这才部署成功,并且成功识别到了添加的标头。

Hexo 添加标头文件#

在 Hexo 中,直接将 _headers 文件加入 source/ 即可,并且在 _config.yml 中配置跳过渲染 _headers 文件:

skip_render:
  - _headers

Hexo 在构建时默认会忽略以下划线 _ 开头的文件,所以还需要在 _config.yml 中配置包含 _headers 文件:

include:
  - _headers

再次运行构建,即可看到在输出网站根目录下出现了 _headers 文件。

Fuwari 主题博客#

对于本博客使用的基于 Astro 构建的 Fuwari 主题,只需要将 _headers 文件加入 public/ 即可,运行构建时会自动将 public 文件夹中的内容原封不动的拷贝到输出网站的根目录中,并且不会忽略以下划线 _ 开头的文件。

给 Cloudflare Pages 添加标头文件
https://blog.wely.fun/posts/给-cloudflare-pages-添加标头文件/
作者
Wely
发布于
2024-05-01
许可协议
CC BY-NC-SA 4.0