WordPress环境下将整域名301重定向至另一域名子目录的方案咨询
解决方案
下面提供两种可直接落地的实现方式,优先推荐服务器配置方案,稳定性更高。
方案1:修改Web服务器配置(推荐)
Apache服务器
找到站点根目录下的.htaccess文件,在WordPress默认的重定向规则之前,插入以下配置:
<IfModule mod_rewrite.c> RewriteEngine On # 匹配所有访问旧域名的请求 RewriteCond %{HTTP_HOST} ^www\.aaa\.example$ [NC] # 所有路径统一301永久重定向到目标子页面 RewriteRule ^(.*)$ https://bbb.example/aaa-subpage/ [R=301,L] </IfModule>
修改完成后清理服务器缓存即可生效。
Nginx服务器
编辑站点对应的Nginx配置文件,新增独立的server块处理旧域名请求:
server { listen 80; listen 443 ssl http2; server_name www.aaa.example; # 填写与bbb.example一致的SSL证书配置 ssl_certificate /path/to/your/cert.pem; ssl_certificate_key /path/to/your/key.pem; # 所有请求统一301重定向 return 301 https://bbb.example/aaa-subpage/; }
修改完成后执行nginx -t校验配置无语法错误,再执行systemctl reload nginx生效。
方案2:重定向插件配置调整
之前插件跳转失效是因为默认规则未匹配旧域名的请求,可按以下逻辑配置:
- 源地址填写
.*,匹配模式选择正则表达式 - 添加匹配条件:请求主机 等于
www.aaa.example - 目标地址填写完整的目标子页面链接
https://bbb.example/aaa-subpage/ - 重定向类型选择301永久重定向
- 保存后清理WordPress缓存和浏览器缓存即可生效
通用注意事项
- 需确保
www.aaa.example的SSL证书已正确部署在当前服务器,避免HTTPS访问旧域名时出现安全报错 - 如果站点接入了CDN,修改配置后需要同步清理CDN缓存,避免旧规则缓存影响测试
- 测试时建议使用浏览器无痕模式,排除本地缓存干扰
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

