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

配置.htaccess实现SSL下www到非www重定向遇阻求助

解决HTTPS www到非www的重定向问题及内容损坏错误

老兄,我看你这问题出在.htaccess的规则逻辑上,原配置里有几个明显的错误,导致重定向失效还触发了内容损坏错误。给你一套靠谱的配置,再给你掰扯清楚为啥原来的不行:

修正后的完整.htaccess配置

# 启用Rewrite引擎(如果服务器未默认开启的话)
RewriteEngine On

# 规则1:处理https://www.example.com → https://example.com
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

# 规则2:处理所有HTTP请求(http://www.example.com和http://example.com)→ https://example.com
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

原配置的问题分析

你原来的规则里有两个致命错误:

  1. 错误的HTTP_HOST判断:RewriteCond %{HTTP_HOST} ^http\.(.*)$ [NC]完全无效,因为%{HTTP_HOST}变量只包含纯域名部分(比如www.example.com),永远不会带有http://前缀,这个条件永远不满足,导致整个规则直接被跳过。
  2. 逻辑冲突的条件组合:你把%{HTTPS} off、HTTP_HOST是http.开头、HTTP_HOST是www.开头三个条件用AND逻辑绑定,这三个条件根本不可能同时满足,所以规则完全没生效,反而可能和服务器默认规则触发重定向循环,导致浏览器提示「Corrupted Content Error」。

额外注意事项

  • 测试阶段建议把R=301改成R=302(临时重定向),确认所有重定向逻辑正常后再改回301永久重定向,避免浏览器缓存错误的重定向规则。
  • 确保你的Apache服务器已经启用了mod_rewrite模块,否则这些Rewrite规则完全不起作用。
  • 修改配置后,一定要清除浏览器缓存再测试,之前的错误重定向可能已经被浏览器缓存下来了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:46:03