.htaccess配置:将无www的HTTPS域名重定向至带www的HTTPS
实现HTTPS + WWW的双重重定向解决方案
没问题,我来帮你调整Rewrite规则,既能保留原有的HTTP转HTTPS功能,又能把所有无www的请求统一重定向到带www的HTTPS域名上,逻辑清晰还不会出现冲突。
直接用下面的代码替换你原来的规则就行:
RewriteEngine On # 统一重定向到HTTPS + WWW版本 RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} ^domainhere\.com$ [NC] RewriteRule ^(.*)$ https://www.domainhere.com/$1 [L,R=301]
代码细节解释:
RewriteEngine On:开启Apache的URL重写引擎,这是所有Rewrite规则运行的基础。- 两个
RewriteCond用[OR]连接,表示只要满足其中一个条件就触发重定向:%{HTTPS} off:当前请求使用的是HTTP协议(非HTTPS)%{HTTP_HOST} ^domainhere\.com$ [NC]:当前访问的域名是不带www的domainhere.com([NC]表示忽略大小写,兼容大写域名的访问场景)
RewriteRule ^(.*)$ https://www.domainhere.com/$1 [L,R=301]:把请求的所有路径($1对应前面捕获的(.*))重定向到带www的HTTPS域名上。[R=301]是永久重定向,对SEO友好;[L]表示这是最后一条规则,处理完就停止后续规则的执行。
实用注意事项:
- 记得把代码里的
domainhere.com替换成你实际的域名,注意域名里的点号要用\.转义(因为正则表达式里的.是通配符,转义后才会匹配真实的点)。 - 测试阶段可以先把
R=301改成R=302(临时重定向),确认所有跳转都正常后再改回301,避免浏览器缓存错误的重定向规则。 - 确保你的服务器已经启用了
mod_rewrite模块,.htaccess文件要放在网站的根目录下。
这个规则会覆盖所有访问场景:
- 访问
http://domainhere.com→ 跳转至https://www.domainhere.com - 访问
http://www.domainhere.com→ 跳转至https://www.domainhere.com - 访问
https://domainhere.com→ 跳转至https://www.domainhere.com
内容的提问来源于stack exchange,提问作者eMikkelsen
相关产品推荐
相关产品推荐

