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提供程序将由您指定@
,其他DNS提供程序(如AWS Route 53)将让您将子域留空以表示@
。无论哪种情况,这些都是A
要创建的记录:
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
- 创建一条
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条目
A
通过运行确认记录dig +noall +answer example.com
。它应该返回185.x.x.x
您输入的四个IP地址。
CNAME
通过运行来确认您的记录dig www.example.com +nostats +nocomments +nocmd
。它应该返回一个CNAME YOUR-GITHUB-USERNAME.github.io
这些DNS条目解析/传播可能需要一个小时左右的时间。完成后,将您的浏览器打开到http://example.com
,然后应将其重定向到http://www.example.com
步骤6:SSL(HTTPS)配置。可选,但强烈建议
自定义域正常工作后,返回到存储库设置。如果您已经打开设置页面,请硬刷新页面。
如果Enforce HTTPS
复选框下方有一条消息,指出该消息仍在处理中,则需要等待。您可能还需要点击save
该Custom domain
部分中的按钮以开始Enforce HTTPS
处理。
处理完成后,应如下所示:
只需单击Enforce HTTPS
复选框,然后将浏览器指向https://example.com
。它应该重定向并打开https://www.example.com
而已!
GitHub将自动使您的HTTPS证书保持最新,并应处理顶点以www
通过HTTPS重定向。
希望这可以帮助!!
...
旧(1/23/19之前)答案
所以我想通了。詹姆斯·麦克劳克林(James McLaughlin)给了我所需的轻推。
要为处理www.yourdomain.com和yourdomain.com的gh-pages Project Pages回购设置自定义域(假设您的回购中已经有gh-pages分支):
- 从项目仓库中,gh-pages分支。使用内容创建一个CNAME文件
yourdomain.com
。提交然后推送。
- 在您的DNS管理器中,设置两个
cname
记录。一个用于根尖(@),另一个用于www。两者都指向YOURusername.github.io
。如果您的DNS提供商不支持ALIAS
根尖(@)上的A
记录,只需创建指向192.30.252.153
和的记录192.30.252.154
等待直到名称服务器更新:
dig yourdomain.com +nostats +nocomments +nocmd