Nginx跳转模块——location与rewrite

news2024/11/16 15:35:41

一、location

1、location作用

用于匹配uri(文件、图片、视频)

uri:统一资源标识符。是一种字符串标识,用于标识抽象的或物理资源文件、图片、视频

2、locatin分类

1、精准匹配:location = / {...}

2、一般匹配:location / {...}

3、正则匹配:location ~ / {...}

3、locating常用的匹配规则

  1. =:进行普通字符精确匹配,也就是完全匹配

  2. ^~:表示普通字符匹配,使用前缀匹配,如果匹配成功,就不再匹配其他的location

  3. ~:区分大小写的匹配

  4. ~*:不区分大小写的匹配

  5. ~$:结束位置

  6. !~:区分大小写的匹配取非

  7. !~*:不区分大小写的匹配取非

4、location匹配优先级

  • 首先精确匹配 =
  • 其次前缀匹配 ^~
  • 其次是按文件中顺序的正则匹配~或者~*
  • 然后匹配不带任何修饰的前缀匹配
  • 最后是交给/通用匹配

总结:(location = 完整路径)> (location ^~ 完整路径)>(location ~,~* 正则顺序) > (location 部分起始路径) > (location /)

5、生产中location匹配

在实际网站中使用的匹配规则至少有三个匹配规则

#第一个必选规则:
location = / {} #直接匹配根网站,通过域名访问网站首页最多 

#第二个规则:
location ^~ /static/ {} #处理静态文件的请求,目录匹配

#第三个规则:
location ~* \.(gif|jpg|png|css) #用于匹配图片
 
#第四个规则
location / {  #用于指定代理,反向代理,转发动态请求。将请求转发到后端

二、rewrite

1、reweite的作用

rewrite作用就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。

2、rewrite跳转实现

  • 支持URL重写、支持if条件判断,但不支持else

  • 跳转:从一个location跳转到另一个location,循环最多可以执行10次,超过后nginx将返回500错误

3、rewrite执行顺序如下

  1. 执行 server 块里面的 rewrite 指令。
  2. 执行 location 匹配。
  3. 如果location当中还有rewrite,继续执行,不停的执行rewrite,然后进入死循环,连续10次之后报错,显示状态码500

4、rewrite语法

rewrite <regex> <replacement> [flag]

  • regex :表示正则匹配规则。
  • replacement :表示跳转后的内容。
  • flag :表示 rewrite 支持的 flag 标记。

5、flag标记说明

  • permanent :返回301永久重定向,浏览器地址栏会显示跳转后的URL地址。
  • redirect :返回302临时重定向,浏览器地址会显示跳转后的URL地址。
  • break :本条规则匹配完成即终止,不再匹配后面的任何规则,且URI不会发生变化。
  • last :本条规则匹配完成后,继续向下匹配新的location URI规则。

5.1 permanent

 5.2 redirect

5.3  break

5.4  last

5.4.1 死循环示例:

验证:访问192.168.247.23/test1/ 

 

 5.4.2 跳转test2:

 验证:访问192.168.247.23/test1/

 5.4.3 跳转test1

验证:访问192.168.247.23/test2/ 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/854652.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【80天学习完《深入理解计算机系统》】第三天 2.3 整数运算【正负溢出】【运算的溢出】【类型转换的二进制扩展】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

ATF(TF-A)安全通告 TFV-6 (CVE-2017-5753, CVE-2017-5715, CVE-2017-5754)

ATF(TF-A)安全通告汇总 目录 一、ATF(TF-A)安全通告 TFV-6 (CVE-2017-5753, CVE-2017-5715, CVE-2017-5754) 二、Variant 1 (CVE-2017-5753) 三、Variant 2 (CVE-2017-5715) 四、Variant 3 (CVE-2017-5754) 一、ATF(TF-A)安全通告 TFV-6 (CVE-2017-5753, CVE-2017-5715, C…

向量数据库介绍

1.什么是向量数据 向量数据库是一种专门用于存储和检索向量数据的数据库。它不同于传统的关系型数据库&#xff0c;而是基于向量相似度匹配的方式来实现高效的数据查询和分析。 向量数据库的应用场景非常广泛&#xff0c;包括但不限于以下几个方面&#xff1a; 图片、音频和视频…

微服务02-docker

1、Docker架构 1.1 镜像和容器 Docker中有几个重要的概念&#xff1a; 镜像&#xff08;Image&#xff09;&#xff1a;Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起&#xff0c;称为镜像。Docker镜像是用于创建 Docker 容器的模板 。就像面向对象编…

js代码执行顺序(同步与异步)

1.同步与异步 异步任务又分为宏任务和微任务 2.执行规则 同步代码遇到,直接执行Promise中.then前的代码直接执行,.then后的代码丢入微任务队列中遇到定时器直接将里面的代码丢入宏任务队列中同步代码执行完&#xff0c;去看微任务,有则执行&#xff1b;再去看宏任务&#xf…

文件的权限

1、修改文件的所属者和所属组 2、修改文件某一类人&#xff08;所属者、所属组、其他人&#xff09;的权限 一、用户对于普通文件的权限 二、用户对于目录文件的权限 三、访问控制列表ACL 四、特殊权限&#xff08;了解&#xff09; wuneng创建了几个文件&#xff0c;xiaoming对…

【C语言】预处理详解

本文目录 1 预定义符号 2 #define 2.1 #define 定义标识符 2.2 #define 定义宏 2.3 #define 替换规则 2.4 #和## 2.5 带副作用的宏参数 2.6 宏和函数对比 2.7 命名约定 3 #undef 4 命令行定义 5 条件编译 6 文件包含 6.1 头文件被包含的方式 6.2 嵌套文件包含 1 预定义符号 __…

2023亚马逊秋季大促定档!卖家要做好准备!

亚马逊Prime秋季促销&#xff0c;又称亚马逊Prime会员早享日&#xff08;Prime Early AccessSale&#xff09;&#xff0c;是亚马逊在2022年才正式推出的一个面向Prime会员的促销活动&#xff0c;与每年7月举办的Prime Day大促是同等级活动&#xff0c;去年秋季大促也是在10月举…

C - The Battle of Chibi

题意&#xff1a;就是问你数组中长度为m的上升子序列(没说连续&#xff09;有多少个。 1&#xff1a;可以想到状态表示dp[ i ][ j ] 代表以 a[i] 为结尾的且长度为 j 的严格单增子序列的数目&#xff0c; 那么状态计算就为 , 那我们如果不优化直接写&#xff0c;一层n&am…

数据结构刷题训练——链表篇(一)

目录 前言 题目一&#xff1a;链表的中间节点 思路 分析 题解 题目二&#xff1a;链表中倒数第k个结点 思路 分析 题解 题目三&#xff1a;合并两个有序链表 思路 分析 题解 方法二 题解 题目四&#xff1a;链表的回文结构 思路 分析 题解 总结 前言 今天我将开…

家政小程序开发制作

家政小程序是一种基于移动互联网的工具&#xff0c;旨在为用户提供方便快捷的家政服务。下面是家政小程序的功能介绍&#xff1a; 1. 家政服务展示&#xff1a;家政小程序可以展示各类家政服务的详细信息&#xff0c;包括清洁、保姆、月嫂、保洁等多种服务项目&#xff0c;以及…

【vue3】基础知识点-pinia

学习vue3&#xff0c;都会从基础知识点学起。了解setup函数&#xff0c;ref&#xff0c;recative&#xff0c;watch、computed、pinia等如何使用 今天说vue3组合式api&#xff0c;pinia 戳这里&#xff0c;跳转pinia中文文档 官网的基础示例中提供了三种写法 1、选择式api&a…

性能测试场景分析并设计?超细案例讲解

前言 性能测试场景&#xff0c;其实和功能测试没什么区别&#xff0c;只是侧重点不同。 我们在功能测试中经常用到的等价类边界值等分析和设计测试case的方法&#xff0c;目的是为了尽可能的覆盖业务场景&#xff0c;避免遗漏导致的功能逻辑缺失或者未达到预期。 而在性能测试…

【C++】初识模板

C模板入门 一、泛型编程 二、函数模板1. 函数模板的概念2. 函数模板格式3. 函数模板的原理4. 函数模板的实例化5. 模板参数的匹配原则 三、类模板 一、泛型编程 假设我们想实现一个交换函数&#xff0c;并且支持不同类型的参数实现&#xff0c;我们可以用 typedef 将类型进行重…

V2MOM工作法

V2MOM分别代表愿景&#xff08;vision&#xff09;、价值&#xff08;values&#xff09;、方法&#xff08;methods&#xff09;、障碍&#xff08;obstacles&#xff09;、衡量指标&#xff08;measurement&#xff09;。 第一&#xff0c;我真正想要的是什么呢&#xff1f;这…

ubuntu磁盘管理

show partition information 挂载设备在这 显示文件系统信息 build file system mkfs -t ext4 /dev/nvme0n1p4命令作用&#xff1a;将/dev/nvme0n1p4 格式化为 ext4 建立交换分区 mkswap -c -v1 /dev/nvme0n1p4 102400-c&#xff1a;check -v1&#xff1a;新版交换分区 -v0&…

四、web应用程序技术——HTTP

文章目录 1 HTTP请求2 HTTP响应3 HTTP方法4 URL5 HTTP消息头5.1 常用消息头5.2 请求消息头5.3 响应消息头 6 cookie7 状态码8 HTTP代理9 HTTP身份验证 HTTP&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;是访问万维网使用的核心通信协议&…

Linux 1.2.13 -- IP分片重组源码分析

Linux 1.2.13 -- IP分片重组源码分析 引言为什么需要分片传输层是否存在分段操作IP分片重组源码分析ip_createip_findip_frag_createip_doneip_glueip_freeip_expireip_defragip_rcv 总结 本文源码解析参考: 深入理解TCP/IP协议的实现之ip分片重组 – 基于linux1.2.13 计网理论…

2023Android面试,如果想卷请继续。备战金九银十

随着移动互联网的快速发展&#xff0c;Android开发岗位竞争也越来越激烈。作为一名Android程序员&#xff0c;面试是进入理想公司的重要一步。本文将分析市场对Android开发岗位的需求&#xff0c;分析2022年的Android开发岗位面试情况&#xff0c;并总结出历年来常见的面试题目…

MySQL中同比和环比语句如何写?

营收表如下&#xff08;表名&#xff1a;a&#xff09;如下图&#xff1a; 营收表 year month money 2021 1 1000 2021 2 1200 2022 1 1300 2022 2 1500 需要算出2022年营收同比与环比&#xff1a; 同比&#xff1a;和去年同月相比&#xff08;1300-1000/1000*100%&#xff0…