19 年 1 月 23 日更新:
自从我上次回答以来,情况发生了很大变化(变得更好)。这个更新的答案将向您展示如何配置:
- 根顶点 (example.com)
- 子域 (www.example.com)
- HTTPS(可选但强烈建议)
最后,所有对example.com 的请求都将被重定向到https://www.example.com(如果您选择不使用HTTPS,则为http://)。我总是使用www 作为我的最终着陆点。为什么(1,2),还有待讨论。
这个答案很长,但并不复杂。为了清楚起见,我很冗长,因为关于这个主题的 GitHub 文档不清晰或线性。
第 1 步:在 GitHub 设置中启用 GitHub 页面
- 在您的存储库中,单击 选项卡
- 向下滚动到
GitHub Pages 部分。你有两个选择:
- 选择
master branch 会将/README.md 视为您的网络index.html。选择master branch /docs folder 会将/docs/README.md 视为您的网络index.html。
- 选择一个主题。
- 等待 GitHub 发布您的网站。通过单击
Your site is ready to be published at 旁边的链接验证它是否有效
第 2 步:在 GitHub 设置中指定自定义域
在此处输入您的自定义域名并点击save:
这是一个微妙但重要的步骤。
- 如果您添加到 GitHub Pages 站点的自定义域是
example.com,那么 www.example.com 将重定向到 example.com
- 如果您添加到 GitHub Pages 站点的自定义域是
www.example.com,则 example.com 将重定向到 www.example.com。
如前所述,我建议始终登陆www,因此我输入了www.example.com,如上图所示。
第 3 步:创建 DNS 条目
在您的 DNS 提供商的 Web 控制台中,创建四个 A 记录和一个 CNAME。
-
A@(又名根顶点)的记录:
一些 DNS 提供商会让您指定 @,而其他(如 AWS Route 53)您将通过 leave the sub-domain blank 指定 @。无论哪种情况,these 都是要创建的 A 记录:
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
Check the Github docs 确认这些是最新的 IP。
- 创建
CNAME 记录以将www.example.com 指向YOUR-GITHUB-USERNAME.github.io。
这是最令人困惑的部分。
注意YOUR-GITHUB-USERNAME 不是 GitHub 存储库名称! YOUR-GITHUB-USERNAME 的值由this chart 决定。
对于用户页面网站(很可能是您),CNAME 条目将是 username.github.io,例如:
对于组织页面网站,CNAME 条目将为 orgname.github.io,例如:
第 5 步:确认 DNS 条目
-
通过运行dig +noall +answer example.com 确认您的A 记录。它应该返回您输入的四个185.x.x.x IP 地址。
-
通过运行dig www.example.com +nostats +nocomments +nocmd 确认您的CNAME 记录。它应该返回一个CNAME YOUR-GITHUB-USERNAME.github.io
解析/传播这些 DNS 条目可能需要一个小时左右的时间。一旦他们这样做了,打开你的浏览器到http://example.com,它应该重定向到http://www.example.com
第 6 步:SSL (HTTPS) 配置。可选,但强烈推荐
自定义域正常工作后,返回到 repo 设置。如果您已经打开了设置页面,请硬刷新页面。
如果Enforce HTTPS 复选框下方有一条消息,说明它仍在处理中,您需要等待。您可能还需要点击Custom domain 部分中的save 按钮来启动Enforce HTTPS 处理。
处理完成后,应如下所示:
只需单击Enforce HTTPS 复选框,然后将浏览器指向https://example.com。它应该重定向并打开https://www.example.com
就是这样!
GitHub 将自动使您的 HTTPS 证书保持最新,并且应该通过 HTTPS 处理指向 www 重定向的顶点。
希望这会有所帮助!