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

如何通过.htaccess将特定HTTPS URL重定向至HTTP?

解决方案:强制特定URL使用HTTP

当然可以实现!你只需要在现有的HTTPS强制规则之前添加一条针对特定URL的反向重定向规则就行,具体修改如下:

修改后的完整.htaccess代码

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # 新增:强制特定URL使用HTTP(必须放在HTTPS全局重定向规则之前)
    RewriteCond %{HTTPS} on
    RewriteRule ^specific-path/?$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME}!-d
    RewriteCond %{REQUEST_FILENAME}!-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization}.
    RewriteRule.* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

关键细节说明

  1. 规则顺序是核心:这条例外规则一定要放在全局HTTPS强制规则的前面——Apache的Rewrite规则是从上到下执行的,先匹配到特定URL的HTTP重定向后,就会停止后续规则执行,不会再触发全局的HTTPS跳转。
  2. 替换实际路径:把代码里的specific-path改成你需要强制HTTP的真实URL路径,比如要让/public/download走HTTP,就改成^public/download/?$(/?$是为了兼容带或不带尾部斜杠的请求)。
  3. 多URL批量处理:如果有多个URL需要强制HTTP,可以用正则匹配多个路径,比如:
    RewriteRule ^(specific-path|another-path|downloads)/?$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
  4. 测试小技巧:初次调试时可以把R=301改成R=302(临时重定向),确认规则完全生效后再改回301(永久重定向),避免浏览器缓存错误的重定向规则导致后续调试麻烦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:17:17