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

Linux Nginx 怎么用 rewrite 规则把 HTTP 强制跳转到 HTTPS

冬敏姑娘_7613

冬敏姑娘_7613

发布时间:2026-11-03 12:00:18

|

940人浏览过

|

来源于php中文网

原创

推荐用 return 301 替代 rewrite 实现 HTTP 到 HTTPS 跳转,因其性能更高、语义明确、无正则开销且避免 if 块风险;若必须用 rewrite,需独立 server 块监听 80 端口、加 permanent 关键字、防开放重定向。

linux nginx 怎么用 rewrite 规则把 http 强制跳转到 https

直接用 rewrite 实现 HTTP 强制跳转 HTTPS 是可行的,但不推荐作为首选方案。它能工作,但存在性能开销、配置易错、语义模糊等实际风险。如果你因历史配置或特殊场景必须使用 rewrite,以下是安全、可用的做法和关键避坑点。

必须用独立 server 块监听 80 端口

rewrite 跳转逻辑不能塞进 HTTPS 的 server { listen 443 ssl; ... } 块里——Nginx 不允许 listen 80 和 ssl on 共存于同一块,否则启动失败。
正确结构是:

  • 新增一个纯 HTTP 的 server 块,只写 listen 80; 和跳转指令;
  • 原有的 HTTPS 服务保持在另一个 server 块中,专注处理加密请求。
server {
    listen 80;
    server_name example.com www.example.com;
    rewrite ^(.*)$ https://$host$1 permanent;
}

✅ permanent 关键字不可省略,否则默认返回 302(临时跳转),搜索引擎不传递权重。
❌ 错误写法:rewrite ^ https://$host$request_uri;(漏 permanent → 302);
❌ 更危险写法:rewrite ^ https://$host$request_uri redirect;(显式 302,明确放弃 SEO 权重)。

防开放重定向:别信 $host

$host 来自用户请求头中的 Host 字段,可被恶意篡改(如 Host: evil.com),导致跳转到任意第三方域名。
生产环境禁止直接拼接 $host。安全做法有两种:

  • 硬编码目标域名(最简单可靠)

    rewrite ^(.*)$ https://www.example.com$1 permanent;
  • 白名单校验后跳转(适合多域名)

    Linux Security Scanner
    Linux Security Scanner

    Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...

    下载
    if ($host ~ ^(example\.com|www\.example\.com)$) {
        rewrite ^(.*)$ https://www.example.com$1 permanent;
    }
    return 444;  # 非法 Host 直接断连

比 rewrite 更优的替代方案:用 return 301

虽然你问的是 rewrite,但必须强调:

  • return 301 是立即响应,不触发 location 匹配、无正则解析、零变量展开;
  • rewrite 走完整匹配流程,若配置中有其他 location 或嵌套规则,可能意外干扰或循环;
  • 官方文档明确指出 if 在 server 上下文中应尽量避免,而 rewrite 在 server 级本质也依赖类似机制。

推荐等效 return 写法(更稳更快):

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://www.example.com$request_uri;
}

补充:测试与上线前必查项

  • 运行 nginx -t 确认语法无误;
  • 检查证书路径是否为绝对路径,.key 文件权限是否为 600;
  • 防火墙需放行 443 端口(firewall-cmd --add-port=443/tcp --permanent);
  • 修改后用 nginx -s reload 而非 restart,避免连接中断。

不复杂但容易忽略。

热门AI工具

更多
火山引擎

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

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

DeepSeek

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

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

豆包大模型

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

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

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

WorkBuddy

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

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

423

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3967

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

6805

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

601

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1516

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3978

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

122

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

537

2026.01.13

Tailwind CSS 如何制作导航栏和卡片
Tailwind CSS 如何制作导航栏和卡片

用 Tailwind CSS 制作导航栏和卡片,可先搭建语义化结构,再组合 Flex、Grid、间距、圆角与阴影类。这里整理横向导航、移动端菜单、卡片网格及悬停效果的相关文章,帮助你把常见页面组件做得清晰且适配不同屏幕。

0

2026.11.03

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

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

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