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

Apache非SSL带WWW域名重定向至SSL无WWW域名问题求助

解决Apache单次重定向实现SSL启用+移除WWW(支持通用子域)

问题分析

当前配置会导致http://www.example.com类请求先被主机自动重定向到https://www.example.com,再通过现有规则跳转至https://example.com,产生两次跳转。需要合并规则,一次性完成启用HTTPS和移除WWW前缀两个操作,同时适配所有子域。

最终配置规则

替换你现有规则,使用以下统一配置:

Options +FollowSymLinks
RewriteEngine On

# 匹配非HTTPS请求 或 带WWW前缀的请求
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
# 提取去除WWW前缀的主机名(兼容带/不带WWW的情况)
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
# 一次性重定向到HTTPS+无WWW的目标地址
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301,NE]

规则详解

  • RewriteCond %{HTTPS} off [OR]:触发条件1——请求未使用HTTPS协议
  • RewriteCond %{HTTP_HOST} ^www\. [NC]:触发条件2——请求主机名以www.开头(NC表示不区分大小写)
  • RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]:通过正则提取不带WWW前缀的主机名,(?:www\.)?是非捕获分组,确保无论原地址是否带WWW,%1都能获取到纯净的域名/子域名
  • RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301,NE]:
    • https://%1%{REQUEST_URI}:拼接目标地址,%{REQUEST_URI}保留原请求的完整路径及参数
    • L:标记为最后一条执行的规则,避免后续规则干扰
    • R=301:永久重定向(测试阶段可改用R=302临时重定向,避免浏览器缓存错误配置)
    • NE:禁止转义URL中的特殊字符(如&、?等),保证参数传递准确

注意事项

  1. 建议禁用主机自带的HTTP到HTTPS自动重定向,避免规则冲突
  2. 配置生效后,需清除浏览器缓存测试,确保单次跳转生效
  3. 若使用CDN或反向代理,需确保服务器能正确识别%{HTTPS}变量(部分环境需用%{HTTP:X-Forwarded-Proto}代替%{HTTPS}来判断请求是否为HTTPS)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 20:25:20