讲师中心 微信公众号
AI工具推荐 视频效率加速

网站HTTPS怎么强制跳转?HSTS头配置详细教程

轻枫君_8581

轻枫君_8581

发布时间:2026-08-01 18:58:07

|

503人浏览过

|

来源于php中文网

原创

首选 return 301,因其更轻量、执行早、无正则开销且避免循环重定向;rewrite 开销大、易出错,仅在需复杂路径处理时选用。

网站https怎么强制跳转?hsts头配置详细教程

nginx 里用 return 301 还是 rewrite 做 HTTP→HTTPS 跳转?

直接用 return 301,别用 rewrite。前者更轻量、执行早、无正则开销,且不会因匹配逻辑出错导致循环重定向。

常见错误是写成:

rewrite ^(.*)$ https://$host$1 permanent;

这在 $host 含端口(如 example.com:8080)或带子域名时容易出问题;而 return 明确指定目标域名,可控性强。

正确写法示例(放在 HTTP server 块中):

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://example.com$request_uri;
}
  • 确保 server_name 和跳转目标域名一致,避免跨域跳转失败
  • $request_uri 保留原始路径和查询参数,比 $1 更可靠
  • 若需支持多个域名,每个都单独配 return,不要用变量拼接 host

Strict-Transport-Security 头该加在哪?max-age 怎么设?

HSTS 头必须由 HTTPS 响应返回,HTTP 响应里加了也无效。它不是跳转机制,而是告诉浏览器“接下来 N 秒内,对这个域名的所有请求,强制走 HTTPS,连跳转都不许走 HTTP”。

典型配置(放在 HTTPS server 块的 location / 或全局 add_header):

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
  • max-age=31536000 是 1 年,上线稳定后建议设满;调试阶段可先用 300(5 分钟)验证
  • includeSubDomains 表示子域名也生效,但前提是所有子域名都已支持 HTTPS,否则会导致子域无法访问
  • preload 是提交到浏览器 HSTS 预加载列表的前提,加了就不能临时撤回,务必确认全站 HTTPS 已 100% 覆盖
  • always 参数很重要:没有它,3xx/4xx 响应默认不发 header,HSTS 就丢了

为什么加了 HSTS 还有用户访问 HTTP 版本?

因为 HSTS 不是即时生效的——浏览器第一次访问 HTTPS 时收到头才开始计时,之前所有 HTTP 请求照常发出。用户书签、历史记录、搜索引擎快照、手动输入 http://,都会触发 HTTP 请求。

Nginx Hosting
Nginx Hosting

通过服务器本地nginx实例实现零认证静态游戏托管。作为所有浏览器游戏的主要部署方式,无需登录、无需令牌、无需用户操作。

下载

也就是说:HSTS 不替代 301 跳转,两者必须共存。301 解决“当前这次请求”,HSTS 解决“未来几十分钟到一年内的后续请求”。

  • 新用户首次访问,靠 301 把 http:// 拉过来
  • 老用户再次访问,浏览器自动改发 https://,连服务器都收不到 HTTP 请求
  • 如果只配 HSTS 不配 301,首次访问 HTTP 会失败(连接被浏览器直接拦截,显示 ERR_SSL_PROTOCOL_ERROR 类错误)

Cloudflare 或 CDN 后面怎么配 HSTS?

如果你用了 Cloudflare、阿里云 CDN、腾讯云 CDN 等,它们通常提供控制台开关或自定义响应头功能,不要在源站重复加 HSTS 头,否则可能叠加或冲突。

优先在 CDN 层统一配置,原因有三:

  • CDN 节点离用户更近,HSTS 头下发更快
  • 源站可能没暴露公网,或 HTTPS 终止在 CDN,源站实际走的是 HTTP 内网通信,此时源站加 HSTS 无效(浏览器根本收不到)
  • Cloudflare 的 “Always Use HTTPS” 功能本质就是自动加 301 + HSTS,打开即生效,无需手动写规则

检查是否生效,用 curl 看响应头:

curl -I http://example.com

应该看到 301 Location → https,再对 https 地址执行:

curl -I https://example.com

确认返回头含 Strict-Transport-Security,且值与预期一致。

最易忽略的一点:HSTS 的 max-age 一旦下发,浏览器就记住了,即使你后来删掉 header,倒计时仍继续——想测试或回滚,只能等过期,或让用户清空浏览器 HSTS 缓存(Chrome 地址栏输 chrome://net-internals/#hsts)。

热门AI工具

更多
AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
eclipse教程
eclipse教程

php中文网为大家带来eclipse教程合集,eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。php中文网还为大家带来eclipse的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

610

2023.06.14

eclipse怎么设置中文
eclipse怎么设置中文

eclipse设置中文的方法:除了设置界面为中文外,你还可以为Eclipse添加中文插件,以便更好地支持中文编程。例如,你可以安装EBNF插件来支持中文变量名,或安装Chinese Helper来提供中文帮助文档。本专题为大家提供eclipse设置中文相关的各种文章、以及下载和课程。

5046

2023.07.24

c语言编程软件有哪些
c语言编程软件有哪些

c语言编程软件有GCC、Clang、Microsoft Visual Studio、Eclipse、NetBeans、Dev-C++、Code::Blocks、KDevelop、Sublime Text和Atom。更多关于c语言编程软件的问题详情请看本专题的文章。php中文网欢迎大家前来学习。

7719

2023.11.02

Eclipse版本号有哪些区别
Eclipse版本号有哪些区别

区别:1、Eclipse 3.x系列:Eclipse的早期版本,包括3.0、3.1、3.2等;2、Eclipse 4.x系列:Eclipse的最新版本,包括4.0、4.1、4.2等;3、Eclipse IDE for Java Developers等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2784

2024.02.23

eclipse和idea有什么区别
eclipse和idea有什么区别

eclipse和idea的区别:1、平台支持;2、内存占用;3、插件系统;4、智能代码提示;5、界面设计;6、调试功能;7、学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

642

2024.02.23

eclipse设置中文全教程
eclipse设置中文全教程

本专题整合了eclipse设置中文相关教程,阅读专题下面的文章了解更多详细操作。

3246

2025.10.10

eclipse字体放大教程
eclipse字体放大教程

本专题整合了eclipse字体放大教程,阅读专题下面的文章了解更多详细内容。

3265

2025.10.10

eclipse左边栏不见了解决方法
eclipse左边栏不见了解决方法

本专题整合了eclipse左边栏相关教程,阅读专题下面的文章了解更多详细内容。

448

2025.10.15

FrankenPHP集成Laravel详细教程
FrankenPHP集成Laravel详细教程

本专题提供FrankenPHP集成Laravel的详细配置指南,全面解析运行原理、开发环境搭建、Caddyfile配置、Octane工作模式、数据库连接、队列任务、定时任务和生产环境优化,解决部署过程中常见的报错与兼容性问题。

0

2026.10.08

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn