You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置.htaccess:强制添加www.并可选启用HTTPS重定向

解决.htaccess强制添加www前缀并可选启用HTTPS的配置方案

看起来你已经有了不错的配置起点,咱们可以调整下规则,让它更精准满足你的需求——既给所有域名(包括子域名)强制加上www.前缀,又能在HTTPS可用时自动启用,还尽量用单条核心Rewrite规则搞定。

优化后的完整配置

RewriteEngine On

# 强制添加www前缀 + 可选启用HTTPS
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s on(s)|offs()
RewriteRule ^ https%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=301]

规则细节解释

  • RewriteEngine On:开启URL重写引擎,这是所有Rewrite规则生效的基础。
  • 第一个RewriteCond:%{HTTP_HOST} !^www\. [NC]
    匹配所有没有以www.开头的域名(包括子域名,比如sub.example.com、example.com),[NC]表示忽略大小写,避免因域名大小写差异导致规则失效。
  • 第二个RewriteCond:%{HTTPS}s on(s)|offs()
    这是个实用的小技巧,用来动态判断HTTPS状态:
    • 若HTTPS已开启(%{HTTPS}值为on),%{HTTPS}s会变成ons,匹配第一个分组on(s),此时%1会被替换成s;
    • 若HTTPS未开启(%{HTTPS}值为off),%{HTTPS}s会变成offs,匹配第二个分组offs(),此时%1会被替换为空字符串。
  • RewriteRule:^ https%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=301]
    根据前面的判断结果完成重定向:
    • HTTPS开启时:重定向到https://www.原域名请求路径;
    • HTTPS未开启时:重定向到http://www.原域名请求路径;
      其中[L]表示这是最后一条执行的规则,[NE]避免对URL中的特殊字符进行不必要编码,[R=301]表示永久重定向(对SEO友好)。

这个配置的优势

  1. 单条核心规则:只用一组条件+规则就完成了两个需求,比原配置更简洁高效。
  2. 兼容所有域名/子域名:不管是主域名example.com还是子域名sub.example.com,只要没带www.前缀,都会被自动加上(比如sub.example.com会变成www.sub.example.com),完全覆盖你提到的子域名场景。
  3. HTTPS灵活适配:自动根据服务器的HTTPS状态选择协议,不用硬写死,适配不同的部署环境。

注意事项

  • 确保你的服务器已经开启了mod_rewrite模块,否则这些规则无法生效。
  • 301永久重定向会被浏览器缓存,测试阶段可以先用R=302临时重定向,确认规则正常后再改成301。
  • 若子域名本身已经是www.sub.example.com这类带www.的格式,规则会自动跳过,不会重复添加前缀。

内容的提问来源于stack exchange,提问作者user7803115

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:23:37