【问题标题】:Multiple GitHub Pages and custom domains via DNS通过 DNS 的多个 GitHub 页面和自定义域
【发布时间】:2012-05-27 23:53:29
【问题描述】:

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

据我目前的理解,GitHub Pages 只允许在 Git 存储库根目录中的 CNAME 文件中定义的页面(用户页面和项目页面)的 ONE CNAME 资源记录. 我已经尝试了很多事情(在我的域提供商EUserv 处使用 DNS 记录和标头重定向,但我只能通过一个 URL (http://blog.florianwolters.de) 访问我的 GitHub 用户页面。我知道 DNS 更改可能会占用直到两天。

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

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

资源

【问题讨论】:

标签: github dns subdomain cname github-pages


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    • 您要么使用example.orgwww.example.org(将现有的A 记录 替换为204.232.175.78)...
    • ... 或子域,例如blog.example.org(使用<username>.github.com 创建一个新的CNAME 记录)。

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

    • 如果使用第一个,您可以使用从所需子域到 example.org 的 HTTP 标头进行重定向。
    • 如果使用后者,您必须使用从 example.orgwww.example.org 到所需子域的标头重定向。

    另外,请参阅 GitHub Pages Help 以获取帮助,并查看我的 GitHub Pages repository 以获取示例 CNAME 文件。

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

    【讨论】:

    • 您能否进一步澄清:“...使用从所需子域到 example.org 的标头重定向是什么意思。”您的意思是在您的 dns 上创建 CName 记录吗? DNS CNAME 梨 --> example.org ??或者 DNS CNAME pear --> userename.github.com ??
    • @elviejo:我相信他的意思是通过 HTTP 标头使用重定向。
    【解决方案3】:

    你可以做到。请注意,所有 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?我无法完成这项工作。即使是标头重定向也不起作用?!尽管如此,到目前为止还是谢谢!
    • 如果您使用的是 florianwolters.de 等顶级域,则必须使用指向 204.232.175.78 的 A 记录。这样你会得到一个重定向到 www,这是非常标准的。我认为您还必须创建一个单独的 www 项目。唯一的问题是你如何从 www 重定向到博客?这需要在服务器端理想地完成,即涉及某种服务器端语言/框架组合以在 www 子域上运行,在这种情况下,github 帮不了你太多。示例:github.com/thoughtnirvana/www_redirect
    • 您的回答是我的问题的解决方案。现在,我可以通过子域托管任意数量的项目。棒极了!请参阅我的答案以获得最终说明。我通过两个简单的标头重定向使其在服务器端(在我的域注册商处)工作。这足以满足我的要求。以前没有用过的原因是,我删除了默认的 A 资源记录(指向我的域注册商的 IP)。因此,标头重定向不起作用。
    • 这还能用吗?看起来 Github 现在只支持 gh-pages 分支……听起来对吗?
    • 非常感谢,它还在工作,太棒了!
    猜你喜欢
    • 2012-11-29
    • 1970-01-01
    • 2020-08-25
    • 2021-07-15
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2012-02-23
    • 2013-05-11
    相关资源
    最近更新 更多