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

Flo*_*ers 68 subdomain dns cname github github-pages

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

根据我目前的理解,GitHub Pages仅允许在Git存储库的根目录中的文件中定义的页面(用户页面和项目页面)的一个 CNAME资源记录CNAME.我已经尝试了很多东西(在我的域名提供商EUserv中使用DNS记录和标题重定向,但我只能在一个URL下访问我的GitHub用户页面(http://blog.florianwolters.de).我知道DNS更改可能需要两天时间.

有人可以向我解释,我如何才能实现上述目标?我无法相信这是不可能的,但我也不是DNS专家等.

如果以上情况不可能:您建议的解决方法是什么?我想要访问一个域(以及该域的子域)下的所有GitHub页面.

资源

Jos*_*isz 69

你能行的.请注意,所有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:pear> florianwolters.github.com

  • 如果您使用的是像florianwolters.de这样的顶级域名,则必须使用指向204.232.175.78的A记录.通过这种方式,您将获得重定向到www,这非常标准.我认为你还必须创建一个单独的www项目.唯一的重要问题是你如何从www重定向到博客?理想情况下,这需要在服务器端完成,这涉及在www子域上运行某种服务器端语言/框架组合,在这种情况下,github对你帮助不大.示例:github.com/thoughtnirvana/www_redirect (2认同)
  • 你的回答是我问题的解决方案。现在我可以通过子域托管任意数量的项目。棒极了!请参阅我的答案以获取最终说明。我通过两个简单的标头重定向使其在服务器端(在我的域注册商处)工作。这足以满足我的要求。之前这不起作用的原因是,我删除了默认的 A 资源记录(指向我的域注册商的 IP)。因此标头重定向不起作用。 (2认同)

Flo*_*ers 5

您可以将一个 CNAME资源记录 一个 A资源记录与GitHub页面一起使用.

因此,最后必须决定:

  • 要么使用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页面存储库以获取示例CNAME文件.

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