GitHub项目页面的自定义域

我在http://github.com的一个回购中有一个gh-pages分支。 若是我访问http://myuser.github.com/myrepo,GitHub项目页面能够正常工做 git

我想设置一个自定义域(myexample.com)来提供这个项目页面。 我想这两个 myexample.comwww.myexample.com就能够提供这些项目的页面。 github

GitHub页面帮助说您在DNS中建立A记录和CNAME记录。 A记录是有道理的,但我不知道在个人DNS中要作什么CNAME记录。 web

gh-pages文档说要为'charlie.github.com'建立一个CNAME记录,这是一个用户页面存储库。 我没有用户页面存储库 - 我只有一个项目存储库和一个gh-pages分支,我想用于myexample.comwww.myexample.comdom

我是否须要建立用户页面存储库,以便我能够将个人项目页面用于www.myexample.com和myexample.com? 网站

我会尝试一下,但我想确保它可以正常工做,由于我已经有www.myexample.com直播而且不想犯错误。 google

我经过电子邮件发送了GitHub支持,他们的回复是 spa

据我所知,你不能同时指向相同的gh页面。 code

我发现很难相信他们只支持项目页面的A记录。 blog

有没有人成功地作过这件事? github-pages


#1楼

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

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


#2楼

概观

对于项目页面而言文档有点使人困惑,而不是用户页面 。 感受你应该作更多,但实际上这个过程很是简单。

它涉及:

  1. 为裸(无www)域设置2个静态A记录。
  2. 为www建立一个CNAME记录,该记录将指向GitHub URL。 这将为您处理www重定向。
  3. 在gh-pages分支上的项目根目录中建立一个名为CNAME(大写)的文件。 这将告诉Github要响应的URL。
  4. 等待一切传播。

你会获得什么

您的内容将经过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的配置的屏幕截图:

Github静态页面所需的A和CNAME记录

3.建立CNAME文件

将名为CNAME的文件添加到gh-pages分支中的项目根目录。 这应该包含您要提供的域。 确保你提交并推送。

例如

nicholasjohnson.com

此文件告诉GitHub使用此repo来处理此域的流量。

等等

如今等待5分钟,您的项目页面如今应该是实时的。


#3楼

我刚刚发现,若是您使用PairNIC ,我只须要启用“自定义DNS”下的“Web转发”设置并提供username.github.io/project地址便可。自动为您设置apex和子域记录。 它彷佛彻底符合接受的答案中的建议。 可是,它不会让您经过手动添加记录来完成相同的操做。 很奇怪。 不管如何,我花了一段时间才弄明白,因此我想我会分享给别人解决的麻烦。


#4楼

我想与你们分享个人步骤是经过提供哪些有点不一样rynopsuperluminary

  • 对于A记录彻底相同可是
  • 而不是为www建立CNAME我宁愿将其重定向到个人空白域( non-www

此配置指的是首选域的指导。 wwwnon www的域设置或反之亦然能够在每一个域提供商上不一样。 因为个人域名在GoDaddy下,所以在域名设置下我使用子域转发 (301)进行设置。

做为将域指向Github存储库的结果,它将为mastergh-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
相关文章
相关标签/搜索