SharePoint Online经典站点(Site A)重定向至自定义Web应用(Site B)咨询
方法1:用Script Editor Web部件(首页/指定页面跳转)
- 打开Site A的首页,进入编辑页面模式
- 找到「媒体和内容」类别下的Script Editor Web部件,添加到页面
- 编辑Web部件,粘贴这段JS代码(替换成实际的Site B地址):
<script type="text/javascript"> // 延迟1秒跳转,给用户看提示的时间,改成0就是立即跳转 setTimeout(function() { window.location.href = "https://yourtenant.sharepoint.com/sites/SiteB"; }, 1000); </script> - 保存页面,测试访问Site A首页,应该会自动跳转到Site B
- 要是想让全站所有页面都跳转,把这个Web部件加到站点母版页的通用区域即可
方法2:修改站点母版页(全站所有页面自动跳转)
这个方法能让Site A的所有页面自动跳转,同时可排除管理页面避免死循环:
- 打开Site A的网站设置,找到「外观」里的「母版页」选项
- 将当前使用的母版页(比如v4.master)下载到本地
- 用VS Code这类编辑器打开母版页,在
<head>标签内添加这段脚本:<script type="text/javascript"> // 以下页面不会跳转,避免修改配置时被卡住 var excludePages = ["_layouts/15/settings.aspx", "_layouts/15/sitepages.aspx"]; var currentUrl = window.location.pathname.toLowerCase(); var shouldRedirect = true; excludePages.forEach(function(page) { if(currentUrl.includes(page.toLowerCase())) { shouldRedirect = false; } }); if(shouldRedirect) { window.location.replace("https://yourtenant.sharepoint.com/sites/SiteB"); } </script> - 将修改后的母版页上传回Site A的母版页库,设为站点默认母版页
- 测试验证:除了排除的管理页,其他页面都应自动跳转
方法3:SPFx Application Customizer(规范的扩展方式)
如果团队有SPFx开发能力,用这种方式更干净,无需修改母版页:
- 新建SPFx Application Customizer项目,在
onInit方法中添加跳转逻辑:@override public onInit(): Promise<void> { // 排除后台接口和管理页面路径 const excludePaths = ["/_layouts/15/", "/_api/", "/_vti_bin/"]; const currentPath = window.location.pathname; const isExcluded = excludePaths.some(path => currentPath.includes(path)); if(!isExcluded) { window.location.replace("https://yourtenant.sharepoint.com/sites/SiteB"); } return Promise.resolve(); } - 将该扩展部署到Site A并启用,即可实现全站无侵入式跳转
注意事项
- 跳转前可添加提示文本,比如在Script Editor里加
<p>该站点已迁移至新地址,即将自动跳转...</p>,提升用户体验 - 务必排除管理类页面,否则会导致无法修改Site A的配置
- 测试时使用不同权限的用户账号,确保跳转逻辑对所有访问用户生效
内容的提问来源于stack exchange,提问作者Vaibhav
相关产品推荐
相关产品推荐

