https网站跳转http的解决方法包括:一、清除服务器中强制http重定向规则;二、禁用或缩短hsts max-age值;三、清除浏览器hsts缓存;四、关闭chrome/edge的automatic https功能;五、移除upgrade-insecure-requests响应头或meta标签。

当您访问一个已配置 HTTPS 的网站时,若页面意外跳转至 HTTP 协议,可能源于服务器重定向规则、HSTS 策略残留或浏览器强制升级机制。以下是阻止 HTTPS 网站跳转 HTTP 的多种方法:
一、检查并移除 Nginx/Apache 中的反向 HTTP 重定向规则
部分管理员为实现“HTTPS 降级共存”,在配置中误加了将 HTTPS 请求 301/302 跳转至 HTTP 的指令,该行为会主动破坏安全连接,必须定位并清除。
1、登录宝塔面板,进入对应站点的“设置” → “配置文件”选项卡。
2、在 Nginx 配置中搜索类似以下内容:
if ($scheme = https) { return 301 http://$host$request_uri; }
3、将整行包含 return 301 http:// 的条件跳转语句删除或注释(在行首添加 #)。
4、若使用 Apache,在配置中查找 RewriteCond %{HTTPS} on 后紧跟 RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 并删除整段规则。
5、保存后,在宝塔“软件商店”中重启 Nginx 或 Apache 服务。
二、禁用或缩短 HSTS 头部中的 max-age 值
HSTS(HTTP Strict Transport Security)响应头一旦被浏览器接收,会强制后续所有请求走 HTTPS;但若该策略中设置了 includeSubDomains 且 max-age 过长,可能导致子域名无法以 HTTP 访问,甚至干扰调试环境下的协议回退逻辑。
1、在站点配置文件中定位 add_header Strict-Transport-Security 行。
2、将其修改为:
add_header Strict-Transport-Security "max-age=0; includeSubDomains";
3、或直接删除该行(如无需 HSTS 保护)。
4、保存配置并重启 Web 服务。
5、注意:此操作仅影响新访问用户;已缓存 HSTS 策略的旧客户端仍需手动清理。
三、清除浏览器端 HSTS 缓存记录
Chrome、Edge 等 Chromium 内核浏览器会持久化存储 HSTS 域名列表,即使服务器已取消 HSTS 响应头,浏览器仍会拦截 HTTP 请求并自动升为 HTTPS,造成“看似跳转实为拦截”的现象。
1、在 Chrome 地址栏输入:chrome://net-internals/#hsts。
2、在 “Delete domain security policies” 区域的 Domain 输入框中,输入您的目标域名(如 example.com,不含 http:// 或 https://)。
3、点击 “Delete” 按钮。
4、在 “Query HSTS/PKP domain” 中输入同一域名,确认返回结果为 "Not found"。
5、使用 Ctrl+Shift+Delete 清除全部浏览数据(含 Cookie 和缓存),重启浏览器。
四、关闭 Chromium 浏览器的 Automatic HTTPS 功能
自 Edge 92 与 Chrome 100+ 起,启用 Automatic HTTPS 功能后,浏览器会在检测到网站支持 HTTPS 时,自动将 HTTP 请求改发为 HTTPS,不经过服务器重定向,因此无法通过服务端配置拦截。
1、在 Chrome 地址栏输入:chrome://flags/#automatic-https。
2、找到 “Automatic HTTPS” 实验性选项。
3、点击下拉菜单,选择 Disabled。
4、点击右下角 “Relaunch” 重启浏览器生效。
五、验证响应头中无 Upgrade-Insecure-Requests 干预
若网页 HTML 中存在 meta 标签或服务器响应头设置了 Upgrade-Insecure-Requests: 1,浏览器将主动将页面内所有 HTTP 资源请求升级为 HTTPS,虽不改变主 URL 协议,但可能触发混合内容拦截或间接导致页面异常跳转感知。
1、打开浏览器开发者工具(F12),切换至 Network 标签页,刷新页面。
2、点击任意 HTML 文档请求,查看 Response Headers,确认不存在 Upgrade-Insecure-Requests: 1 字段。
3、检查页面源码,删除形如 的标签。
4、若使用 Nginx,检查配置中是否误加 add_header Content-Security-Policy "upgrade-insecure-requests"; 并予以移除。










