背景

前几天写了个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, 再根据Coding的设置解析到szhshp.coding.me/xxx, 这样就可以正常访问另一个项目了

子域名解析

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

三种方案:

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

参考文献

  • 文章标题: 《给Git Pages添加一个子页面的域名解析相关》
  • 发布日期: 2017-01-11
  • 文章分类: Tech
  • 相关标签: URL Git