虚拟主机旧域名 301 到新域名301配置_Apache与IIS双版本代码
很多站点因为 旧域名 301 到新域名 没做,百度同时收录带 www 和不带 www、HTTP 和 HTTPS 多套页面,权重被分散。IIS 虚拟主机 虚拟主机配一条 301 规则,把所有流量归一到一个首选域,排名会更集中。
PHPCMS 在 IIS 上跑,伪静态规则用 URL Rewrite 导入 Apache 的 .htaccess,导入后检查正则转义是否正确。301 规则加在伪静态规则之前,stopProcessing="true" 防止被后续规则覆盖。web.config 修改前备份,语法错误会导致整站 500.19。
配置参考(web.config 带 www 跳不带 www):
```
规则写完用 在线 301 检测工具 检测。curl -I http://旧地址 返回 HTTP/1.1 301 Moved Permanently,Location 指向新地址;再 curl -I 新地址 返回 200。连续跳不要超过 1 次,A→B→C 这种多级 301 会延迟权重传递。死循环表现为浏览器报 too many redirects,通常是条件没加 NC 或目标地址又命中同一条规则。
规则维护建议集中在一个文件,Apache 把所有 301 写在 .htaccess 顶部,IIS 写在 web.config 的 rules 顶部并加 stopProcessing="true"。定期清理过期规则,单文件规则超过 200 条会影响每次请求的匹配性能,可以把批量规则合并成一条正则。
HTTPS 站点的 301 要注意证书覆盖范围。带 www 与不带 www 都要在证书的 SAN 列表里,否则跳转到的域名证书不匹配,浏览器报不安全。多域名 301 同理,每个目标域名都要有有效证书,跳转链路上任何一个域名证书失效都会影响用户和蜘蛛抓取。

更新时间:2026-08-26 22:09:08