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

如何通过htaccess禁用单个页面及其动态子页的HTTPS跳转

问题原因

你原有配置的路径排除规则写法有误:!/page/* [NC]的正则逻辑是匹配/page后跟随0个或多个/的路径,无法覆盖/page/下的所有动态子路径,同时用THE_REQUEST变量匹配路径也容易出现匹配偏差。

修正后的完整配置

RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS} off
# 排除所有/page及其子路径的HTTPS跳转
RewriteCond %{REQUEST_URI} !^/page(/.*)?$ [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

关键修改说明

  • 路径匹配变量改用REQUEST_URI,该变量仅存储请求的路径部分,比包含完整请求头信息的THE_REQUEST匹配更精准
  • 调整排除规则为!^/page(/.*)?$:
    • ^/page匹配所有以/page开头的路径
    • (/.*)?表示可选匹配/加任意长度的后续路径,可同时覆盖/page、/page/、/page/dynamic/section所有需要排除的场景
  • 测试前请清理浏览器301永久重定向缓存,或使用无痕模式验证新规则,避免浏览器缓存的旧跳转逻辑影响测试结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 10:57:02