青江的个人站

“保持热爱,奔赴星海”

  • 主页
  • 目录
  • 图床
  • 留言板
  • -关于我-
友链 搜索文章 >>

青江的个人站

“保持热爱,奔赴星海”

  • 主页
  • 目录
  • 图床
  • 留言板
  • -关于我-

多个域名映射同一个Github Pages


阅读数: 0次    2022-07-26
字数:905字 | 预计阅读时长:3分钟

问题描述

因为我现在拥有两个域名,.com域名打算长时间使用,.xyz域名将在2022年十一月份到期,到期后将不再使用。但在到期之前,我想将这两个域名都映射到我的博客,而一个Github Pages只能有一个CNAME文件,也就是只能设置一个域名映射,而要实现两个域名都映射到同一个Github Pages应该怎么办呢?

解决方法:创建一个中转仓库

我们需要在GitHub上再新建一个仓库,用来中转旧域名中的访问到新的域名。

1. 新建随意名字的仓库

我们新建一个仓库。新建的时候实际上可以无所谓命名,因为这个仓库里面不会真的有内容,多数时候访问实际上是404的。但我们创建它只是为了前面提到的那个CNAME文件,告诉GitHub Pages我们有两个域名而已。

1

这里,我创建了一个名为oldblog的仓库,正常情况下,访问这个仓库GitHub Pages的域名前缀为xxxxxxx.github.io/oldblog。

2. 为此仓库添加 GitHub Pages 服务

接着,按照平时去创建GitHub Pages服务的方法往这个仓库提交代码。

例如可以在仓库根目录放一个 _config.yml 文件(这是网站的配置文件),然后直接提交:

1
2
title: XXXXXX
author: XXXXXX

当有了一个分支和简单的网站配置文件后,就可以直接使用GitHub Pages服务了。在这里,我们将自定义域名填写成旧的域名。

这样,当我们在域名服务器中将旧域名设置到xxxxxx.github.io时,GitHub Pages至少知道应该使用这个仓库里的GitHub Pages来显示。

此时这个库的根目录将会自动生成一个CNAME文件,用来存放映射的域名。

3. 创建用于跳转的 404 页面

然而我们并不打算在这个仓库里真的放代码/网页,于是在根目录放一个404.html文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>正在重定向……</title>
</head>
<script language="javascript">
var domain = "这里填写新域名";
var current = window.location.href;
var target = current.substring(
current.indexOf("/", current.indexOf(":") + 3),
);
window.location.href = "//" + domain + target;
location.href = "//" + domain + target;
</script>
<body>
正在重定向……
</body>
</html>

现在,仓库里面是这样的:

2

4. 配置 DNS

最后检查你的 DNS 配置:

  • 旧域名 -> xxxxxx.github.io

  • 新域名 -> xxxxxx.github.io

到现在,就全部完成。以我的网站为例,点击链接 https://hanqingjiang.xyz 会短暂看到一个“正在重定向……”的提示,然后随即跳转到新域名 https://hanqingjiang.com。

(这一跳转的例子在2022/11/26之前可用,在那之后旧域名将停止使用,输入旧域名进入的页面将不可知。)

原理

一个GitHub Pages的仓库只能有一个CNAME文件,也即我们只能告知GitHub我们的一个合理域名。要让GitHub Pages支持两个域名,我们不得不建两个仓库,其中第二个仓库的地址为xxxxxx.github.io/repo-name。在第二个仓库中,我们故意什么都不放,这样会自动触发404.html,我们将404页面设置为跳转到新的域名即完成了我们的目的。

参考链接

  • 如何给 GitHub Pages 配置多个域名? - walterlv
  • 多个域名映射同一个github pages | 守望的个人博客 (yanbinghu.com)
本文来源: 青江的个人站
本文链接: https://hanqingjiang.com/2022/07/26/220726_mappingOfMultipleDomainNames/
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!
知识共享许可协议
赏

谢谢你请我喝可乐~

支付宝
微信
  • Blog

扫一扫,分享到微信

微信分享二维码
添加学习笔记
Github Page域名重复问题解决
  1. 1. 问题描述
  2. 2. 解决方法:创建一个中转仓库
    1. 2.1. 1. 新建随意名字的仓库
    2. 2.2. 2. 为此仓库添加 GitHub Pages 服务
    3. 2.3. 3. 创建用于跳转的 404 页面
    4. 2.4. 4. 配置 DNS
  3. 3. 原理
  4. 4. 参考链接
© 2021-2025 青江的个人站
晋ICP备2024051277号-1
powered by Hexo & Yilia
  • 友链
  • 搜索文章 >>

tag:

  • 生日快乐🎂
  • 新年快乐!
  • 小技巧
  • Linux
  • 命令
  • 语录
  • 复刻
  • Blog
  • Notes
  • Android
  • C
  • FPGA
  • Homework
  • MATLAB
  • Server
  • Vivado

  • 引路人-稚晖
  • Bilibili-稚晖君
  • 超有趣讲师-Frank
  • Bilibili-Frank