如何将旧域名链接重定向至新域名(含CMS目录迁移场景)
旧域名子目录到新域名根目录的301重定向配置
你的现有规则已经接近正确,只需做几个优化就能覆盖更多场景并确保跳转稳定性:
修正后的.htaccess规则
RewriteEngine On RewriteBase / # 将旧域名/clients下的所有请求重定向到新域名根目录,自动保留查询参数 RewriteRule ^clients(/?.*)$ https://newdomain.example$1 [L,R=301,NC]
关键调整说明
- 正则优化:
^clients(/?.*)$同时匹配带斜杠(如/clients/viewinvoice.php)和不带斜杠(如/clients)的请求,避免部分链接无法触发跳转 - NC标志:
NC(忽略大小写)确保诸如/Clients/ViewInvoice.php这类大小写不一致的旧链接也能正常跳转 - 域名适配:如果新域名要求带
www前缀,将规则中的https://newdomain.example替换为https://www.newdomain.example即可
验证要点
- 测试带查询参数的链接:比如
https://olddomain.example/clients/viewinvoice.php?id=447,应自动跳转到https://newdomain.example/viewinvoice.php?id=447 - 测试子目录根路径:
https://olddomain.example/clients或https://olddomain.example/clients/,应跳转到新域名的根目录 - 确认服务器已启用
mod_rewrite模块,且旧域名根目录的.htaccess文件具备生效权限
内容的提问来源于stack exchange,提问作者lizzus
相关产品推荐
相关产品推荐

