我在http://github.com的一个回购中有一个gh-pages
分支。 如果我访问http://myuser.github.com/myrepo,GitHub项目页面可以正常工作
我想设置一个自定义域(myexample.com)来提供这个项目页面。 我想这两个 myexample.com
和www.myexample.com
就可以提供这些项目的页面。
GitHub页面帮助说您在DNS中创建A记录和CNAME记录。 A记录是有道理的,但我不知道在我的DNS中要做什么CNAME记录。
gh-pages
文档说要为'charlie.github.com'创建一个CNAME
记录,这是一个用户页面存储库。 我没有用户页面存储库 - 我只有一个项目存储库和一个gh-pages
分支,我想用于myexample.com
和www.myexample.com
。
我是否需要创建用户页面存储库,以便我可以将我的项目页面用于www.myexample.com和myexample.com?
我会尝试一下,但我想确保它能够正常工作,因为我已经有www.myexample.com直播并且不想犯错误。
我通过电子邮件发送了GitHub支持,他们的回复是
据我所知,你不能同时指向相同的gh页面。
我发现很难相信他们只支持项目页面的A记录。
有没有人成功地做过这件事?
#1楼
截至2013年8月29日, Github的文档声称:
警告:项目页面子路径(如http://username.github.io/projectname)不会重定向到项目的自定义域。
#2楼
概观
对于项目页面而言 , 文档有点令人困惑,而不是用户页面 。 感觉你应该做更多,但实际上这个过程非常简单。
它涉及:
- 为裸(无www)域设置2个静态A记录。
- 为www创建一个CNAME记录,该记录将指向GitHub URL。 这将为您处理www重定向。
- 在gh-pages分支上的项目根目录中创建一个名为CNAME(大写)的文件。 这将告诉Github要响应的URL。
- 等待一切传播。
你会得到什么
您的内容将通过http://nicholasjohnson.com表格的网址提供。
访问http://www.nicholasjohnson.com将返回301重定向到裸域。
重定向将遵循该路径,因此http://www.nicholasjohnson.com/angular的流量将重定向到http://nicholasjohnson.com/angular 。
每个存储库可以有一个项目页面,因此如果您的存储库已打开,您可以拥有任意数量的存储库。
这是过程:
1.创建A记录
对于A记录,将@指向以下ip地址:
@: 185.199.108.153
@: 185.199.109.153
@: 185.199.110.153
@: 185.199.111.153
这些是您的内容将从中提供的静态Github IP地址。
2.创建CNAME记录
对于CNAME记录,请将www指向yourusername.github.io。 请注意尾随句号。 另请注意, 这是用户名,而不是项目名称 。 您还不需要指定项目名称。 Github将使用CNAME 文件来确定从哪个项目提供内容。
例如
www: forwardadvance.github.io.
CNAME的目的是将所有www子域流量重定向到GitHub页面,该页面将重定向到裸域。
这是我用于自己网站http://nicholasjohnson.com的配置的屏幕截图:
3.创建CNAME文件
将名为CNAME的文件添加到gh-pages分支中的项目根目录。 这应该包含您要提供的域。 确保你提交并推送。
例如
nicholasjohnson.com
此文件告诉GitHub使用此repo来处理此域的流量。
等等
现在等待5分钟,您的项目页面现在应该是实时的。
#3楼
我刚刚发现,如果您使用PairNIC ,我只需要启用“自定义DNS”下的“Web转发”设置并提供username.github.io/project地址即可。自动为您设置apex和子域记录。 它似乎完全符合接受的答案中的建议。 但是,它不会让您通过手动添加记录来完成相同的操作。 很奇怪。 无论如何,我花了一段时间才弄明白,所以我想我会分享给别人解决的麻烦。
#4楼
我想与大家分享我的步骤是通过提供哪些有点不同rynop和superluminary 。
- 对于
A
记录完全相同但是 - 而不是为
www
创建CNAME
我宁愿将其重定向到我的空白域(non-www
)
此配置指的是首选域的指导。 www
到non www
的域设置或反之亦然可以在每个域提供商上不同。 由于我的域名在GoDaddy下,因此在域名设置下我使用子域转发 (301)进行设置。
作为将域指向Github存储库的结果,它将为master
和gh-pages
分支提供所有URL,类似于我在下面列出的那些到达首选域:
主
通过在master
分支上创建CNAME
文件(在我的用户存储库中检查它)。
http://hyipworld.github.io/
http://www.hyip.world/
http://hyip.world/
GH-页
通过在gh-pages
分支上创建相同的CNAME
文件(在我的项目存储库中检查它)。
http://hyipworld.github.io/maps/
http://www.hyip.world/maps/
http://hyip.world/maps/
作为上述CNAME
文件的补充,您可能需要通过在页面repo的根目录中创建名为.nojekyll
的文件来完全绕过 GitHub页面上的Jekyll处理 。
#5楼
如果您想知道如何让您的域名显示为
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
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3164059