如何基于GitHub Pages默认域名创建子域名
github.io默认域名下实现子域名式访问子路径的方法
首先明确:GitHub Pages的默认域名体系里,官方压根不提供sub.example.github.io这种格式的免费子域名——只有两种默认域名:用户级的example.github.io(对应同名仓库),和项目级的example.github.io/仓库名(对应其他仓库的Pages站点)。你之前改CNAME文件没用,是因为CNAME只用来绑定自定义域名,和默认的github.io域名体系不搭边。
要是你一定要实现类似“用子域名样式访问子路径”的效果,有两个替代方案:
方案一:用新仓库做自动跳转
- 新建一个GitHub仓库,名字就叫
sub(或者随便你喜欢的名字) - 在仓库根目录建一个
index.html文件,写入自动跳转代码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="refresh" content="0; url='https://example.github.io/sub'"> <title>跳转中...</title> </head> <body> <p>没自动跳转的话,点<a href="https://example.github.io/sub">这里</a></p> </body> </html>
- 进仓库的「Settings」→「Pages」,选部署分支(比如
main),部署路径设为根目录,保存后等部署完成 - 这时候访问
example.github.io/sub(对应新仓库的Pages地址)就会自动跳转到主站点的/sub路径,虽然不是真的子域名,但能达到类似的访问效果
方案二:修改主站点路由逻辑(适合静态生成器)
如果你用的是Jekyll、Hugo这类静态站点生成器,可以在主站点的配置文件里设置路由规则,让特定路径展示对应内容,但这依然没法实现sub.example.github.io的域名访问——因为GitHub默认就不提供这种域名。
总结:要是必须用sub.example.github.io这种子域名格式,只能绑定自定义域名(在Pages设置里加自定义子域名的CNAME记录),但这不符合你“用默认github.io域名”的要求。上面的替代方案能帮你实现类似的访问体验。
内容的提问来源于stack exchange,提问作者Danhui Xu
相关产品推荐
相关产品推荐

