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

Apache .htaccess重写规则条件配置问题求助

解决仅主域名和www子域名重定向到HTTPS的问题

我明白你的需求了——只让example.de和www.example.de的HTTP请求跳转到HTTPS,而x.example.de和y.example.de要保持HTTP访问对吧?你的现有规则问题出在逻辑方向搞反了:你用了排除x/y的规则,但这会导致除了这两个子域名之外的所有域名(比如随便一个z.example.de)都被强制HTTPS,这显然不是你想要的。

正确的思路应该是精准匹配你需要跳转的域名,而不是排除不需要的。下面是修正后的规则:

<IfModule mod_rewrite.c>
    RewriteEngine On
    # 仅当HTTPS未开启时执行
    RewriteCond %{HTTPS} !=on [NC]
    # 精准匹配主域名和www子域名
    RewriteCond %{HTTP_HOST} ^(www\.)?example\.de$ [NC]
    # 重定向到对应的HTTPS地址,保留请求路径
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</IfModule>

规则细节解释:

  • ^(www\.)?example\.de$:这个正则会精确匹配两种目标域名——example.de(www\.部分可选)和www.example.de,[NC]标记确保匹配不区分大小写(域名本身大小写不敏感,加了更稳妥)。
  • 我在RewriteRule里加了$1,这能保证请求路径不丢失(比如http://example.de/page1会被正确跳转到https://example.de/page1,而不是直接跳转到根域名)。
  • R=301是永久重定向,适合生产环境;如果还在测试阶段,可以改成R=302临时重定向,避免浏览器缓存错误规则。

验证效果:

  • ✅ http://example.de → 成功跳转到https://example.de
  • ✅ http://www.example.de → 成功跳转到https://www.example.de
  • ❌ http://x.example.de → 保持HTTP访问,不触发重定向
  • ❌ http://y.example.de → 保持HTTP访问,不触发重定向
  • ❌ http://z.example.de → 保持HTTP访问,不触发重定向(完全符合你只针对主域名和www跳转的需求)

这样调整后就完全满足你的要求啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:54:28