WordPress中HTTPS非WWW到WWW的301重定向问题求助
解决301重定向(https://monsite.com → https://www.monsite.com)无效问题
你的问题出在两点:一是现有规则仅完成了HTTP到HTTPS的跳转,没处理不带www到带www的域名转换;二是如果规则放在WordPress默认区块之后,会被WordPress的重写规则覆盖,导致不生效。
正确的.htaccess配置方案
将以下重定向规则放在# BEGIN WordPress之前,确保规则优先执行:
# 强制HTTPS并跳转至带www的域名 RewriteEngine On RewriteCond %{HTTP_HOST} ^monsite\.com$ [NC] RewriteRule ^(.*)$ https://www.monsite.com/$1 [L,R=301] # 处理HTTP请求转HTTPS(覆盖直接访问http://www.monsite.com的场景) RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # BEGIN WordPress # Les directives (lignes) entre « BEGIN WordPress » et « END WordPress » sont générées # dynamiquement, et doivent être modifiées uniquement via les filtres WordPress. # Toute modification des directives situées entre ces marqueurs sera surchargée. <IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
关键说明
- 第一条规则专门匹配不带www的域名
monsite.com,强制跳转到https://www.monsite.com,[NC]表示不区分大小写,[L,R=301]表示永久重定向并终止后续规则执行。 - 第二条规则覆盖剩余的HTTP请求场景(比如直接访问
http://www.monsite.com),确保全站强制HTTPS。 - 规则必须放在WordPress区块之前,因为WordPress的重写规则会拦截所有请求,放在后面的规则无法触发。
额外注意事项
- 确认服务器已开启
mod_rewrite模块(Apache服务器默认开启,若不确定可联系主机商)。 - 301重定向会被浏览器缓存,测试时建议使用隐私窗口,避免缓存干扰结果。
- 登录WordPress后台,进入「设置」→「常规」,将「WordPress地址(URL)」和「站点地址(URL)」都设置为
https://www.monsite.com,避免WordPress生成错误链接。
内容的提问来源于stack exchange,提问作者Zekura
相关产品推荐
相关产品推荐

