给Git Pages添加一个子页面的域名解析相关

架构师 来源:szhshp 67℃ 0评论

背景

前几天写了个Jekyll Theme, 想在Coding开一个链接进行展示但是遇到了不小的麻烦。

首先我使用的是Coding, 理论上和Github没太大区别。Github的相同问题可以参考这篇文章[^1]

架构

  • 域名提供:Godaddy
  • DNS服务商:DNSPOD
  • Pages服务:Coding

历程

我已经在Coding创建了一个博客主页面并已经成功绑定域名szhshp.org ,想在我又开了一个repo并希望可以使用demo.szhshp.org进行展示

博客在Coding提供的链接是http://szhshp.coding.me/szhshp , 然后szhshp.org通过DNSPOD解析到这个域名正常使用。

我把一个新项目demo也生成了Pages并获得了链接http://szhshp.coding.me/demo,然而当我访问的时候域名被自动解析到了szhshp.org/demo

当然这是两个不同的项目因此很多文件找不到。

这很明显是域名解析方面的错误, 于是我开始寻找域名方面设置的问题。

首先博客的解析路径:

  1. Godaddy
    • DNS服务器设置为DNSPOD
  2. DNSPOD
    • DNSPOD将szhshp.org CNAME解析到szhshp.coding.me. (DNSPOD会自动给你在最后加上一个圆点符号)
  3. Coding Pages
    • szhshp.coding.me/szhshp

这个逻辑丝毫没有问题, 但是我总觉得一个账号不可能只能创建一个演示页面,所以我仔细查看了一下Coding的帮助[^2]

后来发现关于自定义域名部分和当年GitCafe有些许不同:

首先, 在您的域名管理面板中添加 CNAME 记录指向到 pages.coding.me。然后, 在「Pages 服务」设置页中的自定义域名栏目输入您欲绑定的域名, 点击「保存」即可通过自定义域名访问您的网站。

因此解析路径会变成这样:

  1. Godaddy
    • DNS服务器设置为DNSPOD
  2. DNSPOD
    • DNSPOD将szhshp.org CNAME解析到szhshp.coding.me.
  3. Coding Pages Main Server
    • pages.coding.me
  4. Coding Pages
    • szhshp.coding.me/xxx

另外当我们在「Pages 服务」设置页中的自定义域名栏目输入您欲绑定的域名之后, 需要在DNS服务商部分也进行设置:

比如我添加了demo.szhshp.org , 那么就肯定需要在DNSPOD处添加一个 .szhshp.orgCNAME记录

然后这个子页面会统一解析到Coding Pages Main Server, 再解析到szhshp.coding.me/xxx, 这样就可以正常访问另一个项目了

子域名解析

例如我想让demo.szhshp.org 转址到szhshp.org/demo.html

三种方案:

  1. Godaddy自带的子域名解析的功能, 不过需要48h进行反馈, 可能和自定义DNS服务商冲突?
  2. DNSPOD也可以设置子域名的解析, 不过好像除了泛解析之外都要付费用户才能使用?
  3. 因为demo.szhshp.org 正好是另一个项目, 干脆直接在index.html里面写一段JS跳转

参考文献

单个GitHub帐号下添加多个GitHub Pages的相关问题
Coding Pages 介绍

关闭

IT问道推荐

银行贷款频频被拒?
“Dr信用牛牛”让你远离信用污点 国内首家信用健康管理平台免费为你提供信用修复方案