如何在.htaccess中通过单次301重定向将非WWW HTTP转为HTTPS://WWW
单次301重定向实现非WWW HTTP到HTTPS WWW
你的现有规则分开处理域名前缀和协议问题,当请求同时满足「非WWW」和「HTTP」两个条件时,会触发两次重定向。要实现单次跳转,需要将两个判断条件合并,用一条规则完成转换:
# 同时处理非WWW域名和HTTP协议的单次301重定向 RewriteCond %{HTTP_HOST} !^www\. [NC,OR] RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
规则说明
[NC,OR]:NC表示忽略大小写匹配域名,OR表示两个条件满足任意一个即可触发重定向。- 无论请求是
http://domain-name、https://domain-name还是http://www.domain-name,都会直接跳转到https://www.domain-name/请求路径,全程仅一次301重定向。
注意事项
- 将
example.com替换为你的实际域名。 - 确保服务器已启用
mod_rewrite模块。 - 测试阶段建议使用
R=302临时重定向,确认跳转逻辑正常后再改为R=301永久重定向(避免浏览器缓存错误规则)。
内容的提问来源于stack exchange,提问作者Jai
相关产品推荐
相关产品推荐

