- 关于 GitHub Pages 使用自定义域使用的基础知识。
#GitHub Pages中的自定义域
支持的自定义域
- GitHub支持子域和顶点域(apex)。
- GitHub支持子域和顶点域(apex)。
多仓库使用自定义域
- 默认情况下(也就是说项目 Github Pages 站点已发布但不定义自定义域名时),Github Pages 的个人站点的域名将会作用于名下所有已发布的项目站点(也就是说可以通过www.octocat.com/项目名来访问)。
- 默认情况下(也就是说项目 Github Pages 站点已发布但不定义自定义域名时),Github Pages 的个人站点的域名将会作用于名下所有已发布的项目站点(也就是说可以通过www.octocat.com/项目名来访问)。
验证自定义域
- 当Github Pages 站点被禁用,但设置了自定义域,则存在域接管的风险。通过验证自定义域可以防止其他 GitHub 用户将你的域用于他们的存储库。
- 当Github Pages 站点被禁用,但设置了自定义域,则存在域接管的风险。通过验证自定义域可以防止其他 GitHub 用户将你的域用于他们的存储库。
自定义域使用方法
- 关于 Github Pages常见的使用流程和方法。
- 自定义域相关问题
- 关于 Github Pages 实际使用中遇到的问题解决方案。
#支持的自定义域
- GitHub Pages 适用于两种类型的域:
子域
- www子域:
www.example.com
- 自定义子域:
blog.example.com
- www子域:
顶级域(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 提供商配置 A 记录(如
验证自定义域
- 通过 DNS 提供商配置 TXT record 验证顶点域
- 使用 GitHub 提供 TXT 记录
- 使用 DNS 提供商配置该 TXT 记录
- 通过 DNS 提供商配置 TXT record 验证顶点域
#自定义域相关问题
关于Hexo个人站点添加自定义域
- Hexo可以直接手动在source目录添加CNAME文件并填写自定义域(
www.example.com
), 这样就可以实现自定义域 -> 个人站点的默认域(username.github.io.
)跳转。
- Hexo可以直接手动在source目录添加CNAME文件并填写自定义域(
关于GoDaddy
- 由于GoDaddy购买的域名默认是停放的(Parked),并且 www 子域名是默认指向顶级域。
- 删除关于" A @ Parked" 的 A 记录
- 建议将 www 子域指向
username.github.io.
,将顶点域名指向 www 子域。
- 由于GoDaddy购买的域名默认是停放的(Parked),并且 www 子域名是默认指向顶级域。
关于使用强制 HTTPS
- GitHub 不会默认颁发 TSL 证书,除非的 CNAME 记录 www 子域指向站点默认域(
username.github.io.
) - 关于项目站点:
- 在站点默认域成功更改自定义域后,项目站点即可勾选强制 HTTPS
- GitHub 不会默认颁发 TSL 证书,除非的 CNAME 记录 www 子域指向站点默认域(