文章目录
背景:一个老的项目,被重构后,希望通过以前老项目的域名自动跳转到重构后的新项目域名。
- 找到
index.html
根文件
- 在HTML文件
head
头部添加url自动跳转
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>后台管理系统</title>
<link rel="stylesheet" href="index.css" />
<script>
// 鉴别是否为老版测试环境,是true表测试地址,不是false表线上地址。
const debug = window.location.origin === "https://old-test.com"
window.location.href = debug ? 'https://new-test.com' : 'https://new-prod.com';
</script>
</head>
<body>
<div id="root"></div>
</body>
</html>
- 在新版上提供旧版项目的入口,并使其不自动跳转
shell
-. 原理如下:
1. 指定一个搜索参数from=v2(表示是从新版切换回旧版)
2. 鉴别from是否等于v2(用于判断是否取消自动跳转)
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>后台管理系统</title>
<link rel="stylesheet" href="index.css" />
<script>
// 鉴别是否为老版测试环境,是true表测试地址,不是false表线上地址。
const debug = window.location.origin === "https://old-test.com"
// 获取 from 搜索参数值
const from = new URLSearchParams(location.search).get('from')
// 如果不是从新版切回来的,则自动跳转
if (from !== 'v2') {
window.location.href = debug ? 'https://new-test.com' : 'https://new-prod.com';
}
</script>
</head>
<body>
<div id="root"></div>
</body>
</html>
js
-. 效果如下
1. 进入 https://old-test.com 会自动跳转到 https://new-test.com
2. 进入 https://old-prod.com 会自动跳转到 https://new-prod.com
3. 进入 https://old-test.com/?from=v2#/ 不会发生自动跳转
4. 进入 https://old-prod.com/?from=v2#/ 不会发生自动跳转