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

通过.htaccess强制带www的SSL跳转问题排查

解决cPanel中.htaccess强制HTTPS跳转(含www域名)的问题

你的问题出在当前的Rewrite规则只针对**不带www的example.co.uk**做了跳转处理,完全没覆盖www.example.co.uk的HTTP流量,所以带www的域名自然不会跳转到HTTPS。结合cPanel的验证规则,我给你调整一下方案:

修正后的.htaccess规则

直接替换你现有的Rewrite规则部分,保留cPanel自动生成的那两行验证规则(这两行是用于域名/SSL验证的,绝对不能删):

RewriteEngine On

# 保留cPanel的验证规则,请勿删除
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$

# 匹配带www或不带www的example.co.uk域名(忽略大小写)
RewriteCond %{HTTP_HOST} ^(www\.)?example\.co.uk$ [NC]
# 判断当前是否为非HTTPS请求
RewriteCond %{HTTPS} off
# 强制跳转到HTTPS的www版本,301是永久重定向(测试阶段可以先用302避免缓存问题)
RewriteRule ^(.*)$ https://www.example.co.uk/$1 [R=301,L]

关键调整点说明

  1. 覆盖所有域名变体:用^(www\.)?example\.co.uk$同时匹配带www和不带www的域名,确保两种情况的HTTP流量都能被捕获。
  2. 更可靠的HTTPS判断:用%{HTTPS} off替代%{SERVER_PORT} 80,因为有些环境可能用非标准端口处理HTTP请求,这个判断方式兼容性更强。
  3. 保留验证规则:那两行cPanel自动生成的规则是用来通过域名所有权验证的,删除会导致SSL证书续期或域名验证失败。

测试注意事项

  • 先把R=301改成R=302测试,确认跳转正常后再改回301——因为301是永久重定向,会被浏览器缓存,测试阶段用临时重定向更灵活。
  • 测试时用浏览器隐私模式,或者清除本地缓存,避免旧的跳转规则干扰测试结果。
  • 确保你的SSL证书已经覆盖了www.example.co.uk和example.co.uk两个域名,否则跳转会出现证书错误。

如果还是有问题,检查下cPanel的「添加重定向」功能是否已经添加了其他重定向规则,可能和.htaccess里的规则冲突,建议暂时关闭cPanel的自动重定向,用手动配置的.htaccess规则为主。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:23:20