GitHub项目页面的自定义域

℡╲_俬逩灬. 提交于 2020-02-27 01:51:04

我在http://github.com的一个回购中有一个gh-pages分支。 如果我访问http://myuser.github.com/myrepo,GitHub项目页面可以正常工作

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

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

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

我是否需要创建用户页面存储库,以便我可以将我的项目页面用于www.myexample.com和myexample.com?

我会尝试一下,但我想确保它能够正常工作,因为我已经有www.myexample.com直播并且不想犯错误。

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

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

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

有没有人成功地做过这件事?


#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的配置的屏幕截图:

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
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!