我有一个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.example.com时遇到了SSL错误,但如果我去example.com,它可以正常工作

如果同样的情况发生在你身上,可能你的错误是在DNS配置中设置:

CNAME www.example.com --> example.com  (WRONG)

但是,你要做的是:

CNAME www.example.com --> username.github.io  (GOOD)

or

CNAME www.example.com --> organization.github.io  (GOOD)

这是我的错误

其他回答

截至2013年8月29日,Github的文件声称:

警告:像http://username.github.io/projectname这样的项目页面子路径不会被重定向到项目的自定义域。

现在事情容易多了!

更新您的Apex域(@)记录到点

192.30.252.154 192.30.252.153

编辑你的自定义域域在你的github回购设置。

www等子域名可以更新为CNAME到apex域名。

所选的答案很好,但太长了,所以你可能看不清重点:

我在访问www.example.com时遇到了SSL错误,但如果我去example.com,它可以正常工作

如果同样的情况发生在你身上,可能你的错误是在DNS配置中设置:

CNAME www.example.com --> example.com  (WRONG)

但是,你要做的是:

CNAME www.example.com --> username.github.io  (GOOD)

or

CNAME www.example.com --> organization.github.io  (GOOD)

这是我的错误

我想分享我的步骤,这与rynop和superluminary提供的步骤有点不同。

A唱片公司是完全一样的,但是 而不是为www创建CNAME,我更喜欢重定向到我的空白域(非www)

该配置引用了首选域的引导。www到非www的域设置或反之,在每个域提供程序上可以是不同的。因为我的域在GoDaddy下,所以在域设置下,我使用子域转发(301)设置它。

作为指向Github存储库的域的结果,它将给出master和gh-page的所有url。

除了上面的CNAME文件,你可能需要完全绕过GitHub Pages上的Jekyll处理,在你的页面repo根目录下创建一个名为.nojekyll的文件。

如果你想知道如何让你的域名显示为www.mydomain.com,而不是将www请求重定向到 Mydomain.com,试试这个:

g -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