Github Pages迁移到vercel

01 Jun 2022 » md, others

Github Pages现状

主站点仓库PasseRR/passerr.github.io,子站点仓库PasseRR/DesignPatternsPasseRR/JavaLeetCode。 主站点的CNAME为www.xiehai.win

迁移过程

1. 将所有站点从github导入vercel

2. 将vercel多个项目配置为一个域名,在主站点根目录添加vercel.json

{
  // 路径重写
  "rewrites": [
    {
      "source": "/:match*/",
      "destination": "/:match*"
    },
    {
      // 带有github上下文的url 后续会在具体子站中重写url去掉上下文
      "source": "/DesignPatterns/:match*",
      // 目标地址是子站点的vercel地址
      "destination": "https://design-patterns-nine.vercel.app/:match*"
    },
    {
      "source": "/jdk-features/:match*",
      "destination": "https://jdk-features.vercel.app/:match*"
    },
    {
      "source": "/JavaLeetCode/:match*",
      "destination": "https://java-leet-code.vercel.app/:match*"
    },
    {
      "source": "/Java-Example/:match*",
      "destination": "https://java-example.vercel.app/:match*"
    }
  ],
  // 忽略vercel构建的comment
  "github": {
      "silent": true
  }
}

3. 子站配置

github子站点会存在一个上下文路径,以PasseRR/DesignPatterns为例,上下文路径为DesignPatterns, 但在vercel中是独立站点,需要去掉上下文路径,添加路径重写配置文件(vercel.json)如下

{
  "rewrites": [
    {
      // 前缀url重写
      "source": "/DesignPatterns/:match*",
      "destination": "/:match*"
    }
  ],
  "github": {
    "silent": true
  }
}

4. 配置主站域名,若是个新域名,将旧域名重定向到新域名

域名

5. 删除github的域名或者直接删除CNAME文件

6. 等待dns缓存过期,访问新的域名就可以看到基于vercel的新站点了