1/23/19更新:
自从我上次回答问题以来,情况已发生了很大变化(向好的方向发展)。这个更新的答案将告诉你如何配置:
根尖(example.com)
子域(www.example.com)
HTTPS(可选,但强烈鼓励)
最后,对example.com的所有请求将被重定向到https://www.example.com(如果您选择不使用HTTPS,则为http://)。我总是用www作为我的最终着陆。为什么(1,2),是另一个讨论。
这个答案很长,但并不复杂。我说得太啰嗦了,因为关于这个主题的GitHub文档并不清晰或线性。
步骤1:在GitHub设置中启用GitHub页面
从你的回购,点击标签
向下滚动到GitHub Pages部分。你有两个选择:
选择主分支将处理/README。Md作为你的web index.html。选择主分支/docs文件夹将处理/docs/README。Md作为你的web index.html。
选择一个主题。
请稍候,GitHub正在发布您的网站。通过单击“您的网站已准备好发布”旁边的链接来验证它是否有效
步骤2:在GitHub设置中指定自定义域
在这里输入您的自定义域名并点击保存:
这是一个微妙但重要的步骤。
如果您添加到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)你会让子域为空来表示@。在任何一种情况下,这些是要创建的A记录:
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
检查Github文档,确认这些是最新的ip。
创建一条CNAME记录,将www.example.com指向YOUR-GITHUB-USERNAME.github.io。
这是最令人困惑的部分。
注意YOUR-GITHUB-USERNAME不是GitHub回购名!YOUR-GITHUB-USERNAME的值由这个图表决定。
对于用户页面站点(很可能就是你自己的站点),CNAME条目将是username.github。io,例:
对于组织页面站点,CNAME条目将是orgname.github。io,例:
步骤5:确认DNS表项
通过dig +noall +answer example.com确认您的A记录。它应该返回4个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设置。如果您已经打开了设置页面,请硬刷新页面。
如果在强制HTTPS复选框下有一条消息,说明它仍在处理中,您将需要等待。您可能还需要点击自定义域部分中的保存按钮来启动强制HTTPS处理。
一旦处理完成,它看起来应该是这样的:
只需单击强制HTTPS复选框,并将浏览器指向https://example.com。它应该重新引导并打开https://www.example.com
就是这样!
GitHub将自动保持您的HTTPS证书最新,并应处理apex到www重定向到HTTPS。