我有一个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文档说要为'charlie.github.com'做一个CNAME记录,这是一个用户页面存储库。我没有用户页面存储库-我只有一个项目存储库和gh-pages分支,我想用于myexample.com和www.myexample.com。
我是否需要创建一个用户页面存储库,以便可以将我的项目页面用于www.myexample.com和myexample.com?
我只是尝试一下,但我想确保这将工作,因为我已经www.myexample.com活,不想犯错误。
我发邮件给GitHub支持,他们的回复是
据我所知,你不能让两者指向同一页。
我很难相信他们只支持项目页面的A记录。
以前有人成功做到过吗?
概述
当涉及到项目页面时,文档有点令人困惑,而不是用户页面。感觉你应该做更多的事情,但实际上这个过程非常简单。
它包括:
为裸(无www)域设置2个静态A记录。
为www创建一个CNAME记录,它将指向一个GitHub URL。这将为你处理www重定向。
在gh-pages分支的项目根目录中创建一个名为CNAME(大写)的文件。这将告诉Github响应哪个URL。
等待一切繁殖。
你会得到什么
您的内容将通过http://nicholasjohnson.com格式的URL提供。
访问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指向你的用户名。github.io。注意后面的句号。还要注意,这是用户名,而不是项目名。您还不需要指定项目名称。Github将使用CNAME文件来决定从哪个项目提供内容。
e.g.
www: forwardadvance.github.io.
CNAME的目的是将所有的www子域流量重定向到一个GitHub页面,该页面将301重定向到裸域。
下面是我自己的网站http://nicholasjohnson.com:的配置截图
3.创建CNAME文件
在gh-pages分支的项目根目录中添加一个名为CNAME的文件。这应该包含您想要服务的域。确保你承诺并推动。
e.g.
nicholasjohnson.com
这个文件告诉GitHub使用这个repo来处理到这个域的流量。
4. 等待
现在等待5分钟,您的项目页面现在应该是活动的。