给Git Pages添加一个子页面的域名解析相关
背景
前几天写了个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
当然这是两个不同的项目因此很多文件找不到。
这很明显是域名解析方面的错误, 于是我开始寻找域名方面设置的问题。
首先博客的解析路径:
- Godaddy
- DNS服务器设置为DNSPOD
- DNSPOD
- DNSPOD将
szhshp.org
CNAME解析到szhshp.coding.me.
(DNSPOD会自动给你在最后加上一个圆点符号)- Coding Pages
- szhshp.coding.me/szhshp
这个逻辑丝毫没有问题, 但是我总觉得一个账号不可能只能创建一个演示页面,所以我仔细查看了一下Coding的帮助[^2]
后来发现关于自定义域名部分和当年GitCafe有些许不同:
首先, 在您的域名管理面板中添加 CNAME 记录指向到
pages.coding.me
。然后, 在「Pages 服务」设置页中的自定义域名栏目输入您欲绑定的域名, 点击「保存」即可通过自定义域名访问您的网站。
因此解析路径会变成这样:
- Godaddy
- DNS服务器设置为DNSPOD
- DNSPOD
- DNSPOD将
szhshp.org
CNAME解析到szhshp.coding.me.
- Coding Pages Main Server
- pages.coding.me
- Coding Pages
- szhshp.coding.me/xxx
另外当我们在「Pages 服务」设置页中的自定义域名栏目输入您欲绑定的域名之后, 需要在DNS服务商部分也进行设置:
比如我添加了
demo.szhshp.org
, 那么就肯定需要在DNSPOD处添加一个.szhshp.org
的CNAME记录
然后这个子页面会统一解析到Coding Pages Main Server
, 再解析到szhshp.coding.me/xxx
, 这样就可以正常访问另一个项目了
子域名解析
例如我想让demo.szhshp.org
转址到szhshp.org/demo.html
三种方案:
- Godaddy自带的子域名解析的功能, 不过需要48h进行反馈, 可能和自定义DNS服务商冲突?
- DNSPOD也可以设置子域名的解析, 不过好像除了泛解析之外都要付费用户才能使用?
- 因为
demo.szhshp.org
正好是另一个项目, 干脆直接在index.html
里面写一段JS跳转