我gh-pages在http://github.com的一个回购中有一个分支.如果我访问http://myuser.github.com/myrepo,GitHub项目页面可以正常工作
我想设置一个自定义域(myexample.com)来提供这个项目页面.我想要两个 myexample.com并www.myexample.com提供这些项目页面.
GitHub页面帮助说您在DNS中创建A记录和CNAME记录.A记录是有道理的,但我不知道在我的DNS中要做什么CNAME记录.
该gh-pages文件说做一个CNAME对"charlie.github.com",这是一个用户页面资料库记录.我没有用户页面资料库-我只有一个项目库和一个gh-pages分支,我想用的myexample.com和www.myexample.com.
我是否需要创建用户页面存储库,以便我可以将我的项目页面用于www.myexample.com和myexample.com?
我会尝试一下,但我想确保它能够正常工作,因为我已经有www.myexample.com直播并且不想犯错误.
我通过电子邮件发送了GitHub支持,他们的回复是
据我所知,你不能指向同一个gh页面.
我发现很难相信他们只支持项目页面的A记录.
有没有人成功地做过这件事?
ryn*_*nop 490
1/23/19更新:
自从我上次回答以来,情况发生了很大变化(为了更好).此更新的答案将告诉您如何配置:
最后,所有请求example.com将被重定向到https://www.example.com(如果您选择不使用HTTPS,则为http://).我总是用www我的最后着陆.为什么(1,2),是另一个讨论.
这个答案很长,但并不复杂.由于关于这个主题的GitHub文档不清楚或不是线性的,因此我很清楚.
GitHub Pages部分.您有两种选择:
master branch将/README.md视为您的网络index.html.选择master branch /docs folder将/docs/README.md视为您的网络index.html.Your site is ready to be published at在此处输入您的自定义域名,然后点击save:

这是一个微妙但重要的步骤.
example.com,www.example.com则将重定向到example.comwww.example.com,example.com则将重定向到www.example.com.如前所述,我建议总是登陆,www所以我输入www.example.com如上图所示.
在DNS提供商的Web控制台中,创建四个A记录和一个记录CNAME.
A记录@(又名根尖):某些DNS提供商会让您指定@,其他DNS (如AWS Route35)您将保留子域空白以指示@.在任何一种情况下,这些都是A要创建的记录:
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
Run Code Online (Sandbox Code Playgroud)
CNAME记录以指向www.example.com YOUR-GITHUB-USERNAME.github.io.这是最令人困惑的部分.
注意YOUR-GITHUB-USERNAME 不是 GitHub回购名称!值由此图表YOUR-GITHUB-USERNAME确定.
对于用户页面网站(很可能是您的网站),CNAME输入将是username.github.io,例如:

对于组织页面站点,CNAME输入将是orgname.github.io,例如:

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
使自定义域工作后,返回到repo设置.如果您已经打开了设置页面,请刷新页面.
如果Enforce HTTPS复选框下面有一条消息,说明它仍在处理,则需要等待.您可能还需要点击save该Custom domain部分中的按钮以启动Enforce HTTPS处理.
处理完成后,它应如下所示:
只需单击Enforce HTTPS复选框,然后将浏览器指向https://example.com.它应该重新指导和开放https://www.example.com
GitHub将自动使您的HTTPS证书保持最新状态,并应处理www通过HTTPS重定向的顶点.
希望这可以帮助!!
...
所以我明白了.詹姆斯麦克劳林给了我需要的轻推.
要为处理www.yourdomain.com和yourdomain.com的gh-pages Project Pages仓库设置自定义域(假设您的仓库中已经有gh-pages分支):
yourdomain.com.承诺再推.cname记录.一个用于根尖(@),另一个用于www.两者都指向YOURusername.github.io.如果您的DNS提供商不支持ALIAS根apex(@)上的A记录,只需创建指向192.30.252.153和的记录192.30.252.154等到名称服务器更新:
dig yourdomain.com +nostats +nocomments +nocmd
sup*_*ary 239
该文档是有点混乱,当涉及到项目页面,而不是用户页面.感觉你应该做更多,但实际上这个过程非常简单.
它涉及:
您的内容将通过http://nicholasjohnson.com表格的网址提供.
访问http://www.nicholasjohnson.com将返回301重定向到裸域.
重定向将遵循该路径,因此http://www.nicholasjohnson.com/angular的流量将重定向到http://nicholasjohnson.com/angular.
每个存储库可以有一个项目页面,因此如果您的存储库已打开,您可以拥有任意数量的存储库.
这是过程:
对于A记录,将@指向以下ip地址:
@: 185.199.108.153
@: 185.199.109.153
@: 185.199.110.153
@: 185.199.111.153
Run Code Online (Sandbox Code Playgroud)
这些是您的内容将从中提供的静态Github IP地址.
对于CNAME记录,请将www指向yourusername.github.io.请注意尾随句号.另请注意,这是用户名,而不是项目名称.您还不需要指定项目名称.Github将使用CNAME 文件来确定从哪个项目提供内容.
例如
www: forwardadvance.github.io.
Run Code Online (Sandbox Code Playgroud)
CNAME的目的是将所有www子域流量重定向到GitHub页面,该页面将重定向到裸域.
这是我用于自己网站http://nicholasjohnson.com的配置的屏幕截图:
将名为CNAME的文件添加到gh-pages分支中的项目根目录.这应该包含您要提供的域.确保你提交并推送.
例如
nicholasjohnson.com
Run Code Online (Sandbox Code Playgroud)
此文件告诉GitHub使用此repo来处理此域的流量.
现在等待5分钟,您的项目页面现在应该是实时的.
Phi*_*hil 21
如果您想知道如何让您的域名显示为
www.mydomain.com而不是重定向www请求mydomain.com,请尝试以下操作:
gh-pages分支上的CNAME文件将有一行:
www.mydomain.com(而不是mydomain.com)
无论您对重定向的偏好(换句话说,无论您在gs-pages分支上的CNAME文件中是什么),使用您的DNS提供程序,都应该像这样设置:
A @ 192.30.252.154
A @ 192.30.252.153
CNAME www username.github.io
Run Code Online (Sandbox Code Playgroud)
Jim*_*ski 15
这些详细的解释很好,但OP的(和我的)混淆可以用一句话来解决:"直接DNS到您的GitHub 用户名或组织,忽略特定的项目,并在您的项目存储库中添加适当的CNAME 文件:GitHub将发送基于存储库中文件的正确项目的正确DNS . "
Ami*_*mio 13
截至2013年8月29日,Github的文档声称:
警告:项目页面子路径(如http://username.github.io/projectname)不会重定向到项目的自定义域.
| 归档时间: |
|
| 查看次数: |
97549 次 |
| 最近记录: |