shuguang's blog

环境决定基础,选择决定价值,努力决定方向。

GitHub Pages中的自定义域

  • 关于 GitHub Pages 使用自定义域使用的基础知识。

#GitHub Pages中的自定义域

  • 支持的自定义域

    • GitHub支持子域和顶点域(apex)。

  • 多仓库使用自定义域

  • 验证自定义域

    • 当Github Pages 站点被禁用,但设置了自定义域,则存在域接管的风险。通过验证自定义域可以防止其他 GitHub 用户将你的域用于他们的存储库。

  • 自定义域使用方法

    • 关于 Github Pages常见的使用流程和方法。

  • 自定义域相关问题
    • 关于 Github Pages 实际使用中遇到的问题解决方案。

#支持的自定义域

  • GitHub Pages 适用于两种类型的域:
    • 子域

      • www子域:www.example.com
      • 自定义子域:blog.example.com

    • 顶级域(apex 域):example.com

      • 顶点域是不包含子域的自定义域

    • 始终建议使用 www 子域

      • www 子域不受 GitHub 服务器的 IP 地址变动的影响。
      • 如果通过 DNS 提供程序配置每种域类型的正确记录,GitHub Pages 将自动在域之间创建重定向(自动重定向仅适用于 www 子域和顶点域之间)。

#验证自定义域

  • 当 GitHub Pages 站点被禁用时,能避免域被接管

    • 可防止其他 GitHub 用户将你的域用于他们的存储库。
    • 验证的域会阻止其他 GitHub 用户接管你的自定义域并使用它来发布他们自己的 GitHub Pages 站点。

  • 不建议使用自定义子域指向顶点域

    • 会遇到对网站强制实施 HTTPS 的问题,此外还可能会遇到子域根本无法访问 GitHub Pages 网站的问题。

#自定义域使用方法

  • 关于 DNS 解析的使用

  • 配置子域和顶点域

    • 使用 DNS 提供商配置 A 记录(如www.username.com -> 185.199.108.153
    • 使用 DNS 提供商配置 CNAME 记录(如www.username.com -> www.username.github.io

  • 验证自定义域

    • 通过 DNS 提供商配置 TXT record 验证顶点域
      • 使用 GitHub 提供 TXT 记录
      • 使用 DNS 提供商配置该 TXT 记录

    Github Pages 验证顶点域


#自定义域相关问题

  • 关于Hexo个人站点添加自定义域

    • Hexo可以直接手动在source目录添加CNAME文件并填写自定义域(www.example.com), 这样就可以实现自定义域 -> 个人站点的默认域(username.github.io.)跳转。

  • 关于GoDaddy

    • 由于GoDaddy购买的域名默认是停放的(Parked),并且 www 子域名是默认指向顶级域。
      • 删除关于" A @ Parked" 的 A 记录
      • 建议将 www 子域指向 username.github.io.,将顶点域名指向 www 子域。

  • 关于使用强制 HTTPS

    • GitHub 不会默认颁发 TSL 证书,除非的 CNAME 记录 www 子域指向站点默认域(username.github.io.
    • 关于项目站点:
      • 在站点默认域成功更改自定义域后,项目站点即可勾选强制 HTTPS

#Thanks