You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何解决GitHub Pages自定义域名下多站点无法正常访问的问题?

修复GitHub Pages子仓库站点被自定义域名覆盖的问题

嘿,我来帮你搞定这个问题~你遇到的情况其实是GitHub Pages自定义域名的一个常见坑:当你给根仓库stasmotorny.github.io设置了自定义域名frontdev.pp.ua后,GitHub会把这个域名设为你账号下所有Pages站点的默认路由,导致其他子仓库的路径被直接覆盖,所以访问stasmotorny.github.io/photographer/才会跳转到主域名的首页。

下面是两种可行的修复方案,你可以根据自己的需求选择:

方案1:给子仓库配置二级域名(推荐,更清晰)

如果希望每个子站点都有独立的访问地址,这个方法最合适:

  • 先去你的域名DNS管理后台,添加一条CNAME记录:
    • 主机记录填photographer(对应你要设置的二级域名前缀),记录值填stasmotorny.github.io
  • 打开GitHub上的photographer仓库,进入「Settings」→「Pages」页面,在「Custom domain」输入框里填photographer.frontdev.pp.ua,然后点击「Save」。
  • 等个10-30分钟让DNS解析生效,之后就能通过photographer.frontdev.pp.ua正常访问这个子站点了。
  • 其他子仓库也可以用同样的方法,分别配置不同的二级域名。

方案2:取消全局自定义域名,保留子路径访问

如果你更习惯用stasmotorny.github.io/photographer/这种子路径访问,那就这么操作:

  • 进入根仓库stasmotorny.github.io的「Settings」→「Pages」页面,把「Custom domain」里的frontdev.pp.ua删掉,点击「Save」。
  • 这时候根站点会恢复到stasmotorny.github.io访问,同时所有子仓库的路径也能正常打开了。
  • 要是还想保留frontdev.pp.ua访问根站点,可以在根仓库的配置文件里(比如Jekyll的_config.yml)设置url: https://frontdev.pp.ua,同时保持DNS记录不变。不过这种情况下,子站点只能通过stasmotorny.github.io/xxx/访问,没法用自定义域名的子路径。

几个关键提醒

  • GitHub Pages本身不支持在同一个自定义域名下挂载多个子仓库的站点,要么用二级域名区分,要么放弃全局自定义域名的覆盖。
  • 修改DNS后,可以在终端用nslookup photographer.frontdev.pp.ua命令验证解析是否生效。
  • 记得确认每个子仓库的GitHub Pages都已经正确开启,并且分支设置是对的(一般是main或者gh-pages分支)。

内容的提问来源于stack exchange,提问作者Stas Motorny

火山引擎 最新活动