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

使用.htaccess将www及HTTP重定向至非www HTTPS的问题咨询

你的配置接近目标,但漏掉了HTTPS下的www重定向

首先直接给结论:你不需要把%{REQUEST_URL}替换成example.com,不过你的当前配置没有处理HTTPS协议下的www子域名跳转(比如https://www.example.com不会被重定向到https://example.com),这是需要补充的核心部分。

先拆解你的现有规则:

  • 第一条条件%{HTTPS} off只针对HTTP协议的请求,所以当用户访问https://www.example.com时,这条规则不会触发,也就无法完成跳转。
  • %{HTTP_HOST} ^(?:www\.)?(.*)$这个正则是对的,它会把www.example.com或example.com捕获为example.com(存到%1变量)。
  • %{REQUEST_URL}其实包含了请求的路径和查询字符串,用它是没问题的,但更规范的写法是使用RewriteRule捕获的$1(也就是你规则里的(.*)),效果完全一致。

完整的正确配置

把你的.htaccess更新为以下内容,就能覆盖所有目标场景的跳转:

RewriteEngine On

# 处理HTTP协议的请求:跳转到HTTPS+非www
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]

# 处理HTTPS协议下的www请求:跳转到非www的HTTPS
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]

配置说明

  1. 第一组规则:针对所有HTTP请求(不管带不带www),直接重定向到对应的HTTPS非www地址,同时完整保留原请求的路径和参数。
  2. 第二组规则:针对HTTPS但带www的请求,去掉www前缀,重定向到非www的HTTPS地址,同样保留原路径和参数。

另外两个小提示:

  • 301是永久重定向,配置生效前建议先改用R=302(临时重定向)测试,确保规则逻辑正确后再换回301,避免浏览器缓存错误的重定向规则。
  • [NC]标记表示匹配主机名时不区分大小写,能保证WWW.EXAMPLE.COM这类大写域名也能被正确处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:21:12