将子域名指向Github Pages

3

我有一个问题。

目前我有两个不同的网站,分别托管在以下域名上。这些网站目前托管在Azure上(虽然这与本问题无关)。

blog.craftworkgames.com
astrid.craftworkgames.com

我希望将它们迁移到 GitHub Pages 托管。我已经在以下网址上制作了新的页面。

craftworkgames.github.io
craftworkgames.github.io/Astrid.Framework

第一个域名托管博客,第二个域名托管 Astrid。 最终我希望保留现有的URL,并将它们指向新域,但据我了解,将 astrid.craftworkgames.com 域指向 Github Pages 上 Astrid.Framework 子文件夹可能会很困难。
另一件困扰我的事情是URL区分大小写。例如,craftworkgames.github.io/astrid.framework 会返回404错误。 我认为这在分享URL时可能会成为问题。
所以,我的问题是,我有哪些选择?
我能否以透明的方式将 astrid.craftworkgames.com 指向 craftworkgames.github.io/Astrid.Framework?
或者,我可以使用别名,如 www.craftworkgames.com/astrid,更容易记忆和输入。
谢谢。

你尝试过在htaccess中使用重写规则吗? - Michael St Clair
1
我找到了这个,它说 GitHub Pages 不支持 htaccess,但也许我可以借此做些什么,https://help.github.com/articles/redirects-on-github-pages/ - craftworkgames
但是在Azure服务器上,您应该有一个htaccess文件,可以显示craftworksgames.com的URL,同时显示来自GitHub URL的内容。至少这就是我理解的问题。 - Michael St Clair
1
@MichaelStClair 的想法是完全停止在这些网站上使用 Azure。所以即使那样可以工作,我也不希望在 Azure 服务器上有任何东西。我可能不应该在问题中提到 Azure,因为它与解决方案无关。 - craftworkgames
1个回答

13
将{blog,astrid}.craftworkgames.com的A记录替换为指向username.github.io的CNAME记录,即可通过别名域名进行映射。然后,为了让Github知道如何从每个自定义域名进行重定向,您需要在存储库中添加一个特殊的“CNAME”文件,其中内容恰好是要从中重定向的域名(在您的情况下为“astrid.craftworkgames.com”)。
例如,我使用CNAME记录将githubp.gjp.cc配置到gpittarelli.github.io。然后,我创建了repogpittarelli.github.io,其中包含index.html和一个CNAME文件,其中包括githubp.gjp.cc
您可以在此链接中查看其效果:http://githubp.gjp.cc/。这与您想要blog.craftworkgames.com的行为完全相同。请注意,如果您尝试转到gpittarelli.github.io,github会重定向到我的自定义子域。
对于项目页面,设置方式几乎相同,只不过index.html和CNAME文件是在gh-pages分支上创建的。您可以在以下链接中查看示例:http://githubp-reddit.gjp.cc/
这是基于此存储库的gh-pages分支:https://github.com/gpittarelli/reddit-twitch-bot/tree/gh-pages
参考来源:https://help.github.com/articles/setting-up-a-custom-domain-with-github-pages/
  • 如何在您的仓库中添加CNAME文件
  • 关于GitHub Pages网站自定义域名的说明-顶级域名

  • 仍在等待DNS传播,但这个解决方案似乎完美地运作了!非常感谢。回想起来,尝试这个解决方案几乎是显而易见的,但我被Github的文档搞糊涂了。当stackoverflow允许我时,我将在30分钟内授予奖励。 - craftworkgames

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接