通过DNS的多个GitHub页面和自定义域


75

我希望有一个用户页面和多个项目页面由GitHub Pages托管,但可以在一个自定义域下使用(当然,每个GitHub Pages存储库都有子域)。所以我的目标如下:

由于我目前的理解,GitHub的页面是只允许ONE CNAME资源记录的页面(用户页面和项目页)中定义CNAME的Git仓库的根文件。我已经尝试了很多方法(在域名提供商EUserv上处理DNS记录和标头重定向),但是我只能在一个URL(http://blog.florianwolters.de)下访问GitHub用户页面。更改可能要持续两天。

有人可以向我解释我如何实现上述目标吗?我不敢相信这是不可能的,但我也不是DNS等方面的专家。

如果上述方法不可行:建议的解决方法是什么?我确实想访问一个域(以及该域的子域)下的所有GitHub页面。

资源资源


不可能。在我的自定义域上看到CNAME文件中的多个域不起作用
Bengt

这篇博客文章详细介绍了该问题。captainwhippet.com/blog/2014/05/11/blog-setup-details.html
史蒂夫·

Answers:


75

你能行的。请注意,所有DNS CNAME条目均指向同一主机。

1:github.com/florianwolters/florianwolters.github.com

CNAME文件内容: blog.florianwolters.de

DNS CNAME:博客> florianwolters.github.com

2:github.com/florianwolters/pear/tree/gh-pages

CNAME文件内容: pear.florianwolters.de

DNS CNAME:梨> florianwolters.github.com


好的,这两个CNAME文件和第一个CNAME资源记录的文件内容都已经与您的建议值匹配。我更改了第二个DNS CNAME记录。如果可以的话,我明天再报告。另外,我的问题的一部分仍然是:我必须创建哪些CNAME记录才能通过florianwolters.de和www.florianwolters.de到达blog.florianwolters.de?我不能做这个工作。甚至标题重定向也不起作用?!不过,到目前为止,谢谢!
Florian Wolters,2012年

2
如果您使用的顶级域名如florianwolters.de,则必须使用指向204.232.175.78的A记录。这样,您将重定向到www,这是非常标准的。我认为您也必须创建一个单独的www项目。唯一的重新考虑问题是您如何从www重定向到博客?理想情况下,这需要在服务器端完成,这涉及到某种服务器端语言/框架组合来在www子域上运行,在这种情况下github帮不上什么忙。示例:github.com/thoughtnirvana/www_redirect
Joseph Fneisz 2012年

2
您的答案就是解决我的问题的方法。现在,我可以通过子域托管任意多个项目。棒极了!最终解释请参阅我的答案。我通过两个简单的标头重定向在服务器端(在我的域名注册商处)工作。这足以满足我的要求。之所以以前没有用过,是因为我删除了默认的A资源记录(指向我的域名注册机构的IP)。因此,标头重定向不起作用。
弗洛里安·沃尔特斯

这个还在吗?看起来Github现在仅支持gh-pages分支...听起来不错吗?
瑞安·安吉莉

1
非常感谢您,它仍在工作,而且很棒!
Kalitine 2015年

5

您可以将一个 CNAME资源记录 一个 A资源记录与GitHub Pages一起使用。

因此,总而言之,必须决定:

  • 无论你使用example.orgwww.example.org(取代现有的A记录204.232.175.78)...
  • ...或子域,如blog.example.org(创建一个新的CNAME记录<username>.github.com)。

现在,您必须选择如何将一个(子)域映射到另一个域:

  • 如果使用第一个,则可以使用HTTP头将重定向从所需的子域使用到example.org
  • 如果使用后者必须使用报头重定向从example.orgwww.example.org至所需的子域(或多个)。

另外,请参阅GitHub Pages帮助以获取帮助,以及我的GitHub Pages存储库以获取示例CNAME文件。

编辑: GitHub Pages添加了一个详细页面,该页面在此处描述了如何设置自定义域。


您能否进一步说明一下:您的意思是:“ ...使用标头重定向从所需的子域到example.org。” 您是要在dns上创建CName记录吗?DNS CNAME pear-> example.org ?? 或DNS CNAME pear-> userename.github.com ??
elviejo79 2013年

1
@elviejo:我相信他的意思是使用HTTP标头使用重定向。
dam13 2013年

1

对于在Git存储库根目录中的CNAME文件中定义的页面(用户页面和项目页面),您只能有一个CNAME资源记录。

您可以通过在DNS设置中为主机(pear)创建一个指向florianwolters.github.com的主机(pear)的CNAME记录,并在pear.florianwolters.de的存储库中的CNAME文件中输入一个条目来规避此问题

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.