
本文介绍一种轻量级客户端方案,通过 javascript 随机选择目标域名,将用户从旧网站当前路径无缝重定向到多个新站点(如 site1.com、site2.com、site3.com)的相同路径下。
本文介绍一种轻量级客户端方案,通过 javascript 随机选择目标域名,将用户从旧网站当前路径无缝重定向到多个新站点(如 site1.com、site2.com、site3.com)的相同路径下。
在迁移旧网站时,若需将流量临时或灰度分发至多个新部署的镜像站点(例如用于 A/B 测试、负载分流或灾备切换),可借助浏览器端脚本实现路径保持的随机重定向。该方案无需服务端配置变更,适合快速验证或多环境并行上线场景。
核心逻辑如下:
- 定义目标站点数组;
- 使用
Math.random()生成随机索引,安全选取任一域名; - 拼接
https://+ 随机域名 + 当前路径(window.location.pathname); - 执行跳转(注意:生产环境应取消注释最后一行)。
示例代码(推荐置于 或页面顶部 <script></script> 中):
// 定义候选目标站点(建议使用 HTTPS,避免混合内容警告)
const targetSites = ["site1.com", "site2.com", "site3.com"];
const randomSite = targetSites[Math.floor(Math.random() * targetSites.length)];
const redirectUrl = `https://${randomSite}${window.location.pathname}${window.location.search}${window.location.hash}`;
// 开发阶段建议先 console.log 调试,确认 URL 正确性
console.log("Redirecting to:", redirectUrl);
// ✅ 生产环境启用此行以执行跳转
window.location.href = redirectUrl;⚠️ 注意事项:
-
协议安全:务必使用
https://,避免因 HTTP 升级策略或现代浏览器限制导致跳转失败; -
路径完整性:追加
window.location.search(查询参数)和window.location.hash(锚点)可确保完整路由还原; - SEO 与体验:客户端重定向不被搜索引擎视为权威跳转(无 301 状态码),仅适用于临时策略或内部流量;长期方案建议改用服务端 302/307 重定向;
-
可追溯性:如需监控各站点流量分布,可在跳转前上报
randomSite到分析系统(如 GA4 或自建日志)。
总结:该方法简洁高效,适用于灰度发布、多活测试等轻量级场景,但不应替代服务端重定向作为正式迁移方案。

















