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

全站强制HTTPS但指定目录需强制HTTP的.htaccess配置求助

Got it,我来帮你搞定这个问题!你的现有配置只处理了非HTTPS转HTTPS的单向跳转,但完全没考虑反向规则——也就是当用户用HTTPS访问excluded_directory时,没有强制跳转到HTTP,这就是为什么这个目录还能通过HTTPS访问的原因。

完整解决方案

直接在根目录的.htaccess里添加双向规则即可,不需要依赖子目录的二级.htaccess(大概率是服务器配置限制了子目录规则生效,或者被根目录规则覆盖了)。

最终配置代码

RewriteEngine On

# 规则1:强制除excluded_directory外的所有请求使用HTTPS
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/excluded_directory/
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301]

# 规则2:强制excluded_directory目录下的所有请求使用HTTP
RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} ^/excluded_directory/
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L,R=301]

关键细节解释

  • 第一条规则:仅当请求不是HTTPS,且路径不包含/excluded_directory/时,跳转到HTTPS版本。把%{REQUEST_URI}改成/$1是为了避免路径重复,适配不同服务器的配置逻辑。
  • 第二条规则:这是你之前缺失的核心!当请求是HTTPS,且路径包含/excluded_directory/时,直接跳转到HTTP版本,彻底禁止该目录的HTTPS访问。

测试前必做

别忘了清空浏览器缓存!因为301重定向是永久缓存的,旧的缓存记录会干扰你的测试结果,导致规则看起来没生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:08:21