nginx之location的优先级和nginx的重定向

news2025/2/23 2:50:55

一、nginx之location的优先级和匹配方式(重点)

(一)nginx的正则表达式

nginx的正则表达式

符号

含义

^

字符串的起始位置(以什么开头)

$

字符串的结束位置(以什么结尾)

*

匹配所有

+

匹配前面的字符最少1次

?

匹配前面的字符0次或者1次

.

任意单个字符

{n}

连续重复出现n次

{n,m}

连续重复n-m次

[c]

匹配单个字符c

()

分组

|

(二)location匹配的分类:location一旦匹配成功,不再向下继续匹配

1、精确匹配:完整路径,一个字不能少,也不能错

(1)格式:location = / {}

2、正则匹配

(1)格式:location ~ / {}

正则匹配符号

含义

^-

前缀匹配,以什么为开头

~

区分大小写进行匹配

~*

不区分大小写进行匹配

!~

区分大小写取反匹配

!~*

不区分大小写取反匹配

(三)location匹配的优先级(重点)

1、精确匹配的优先级最高——正则匹配——一般匹配优先级最低

location = 完整路径 > location ^- > location~/~* > location /test > location /

2、生产中配置location的原则

(1)网站首页(一般是静态页面,匹配网站的根工作目录):一律都是精确匹配

①格式:

location = / {

}

(2)处理静态文件的请求:目录匹配和后缀匹配

①格式:

location ^~ /static {

}

location ~* \. {html|jpg|jpeg}$ {

}

(3)一般匹配:做反向代理、动态请求,把动态请求转发到后端的服务器

①格式:

location / {

proxy_pass http://tomcat server;

}

二、nginx的重定向(页面跳转)

(一)rewrite的相关概念

1、rewrite:结合nginx提供的全局变量和自定义的变量,结合正则表达式以及标志位实现

url重写以及重定向

2、rewrite中可以添加if语句,但只有if没有else

(二)rewrite的执行顺序

1、执行server块里面的rewrite

2、执行location里面定义的rewrite

3、选定location中的rewrite

(三)rewrite的语法

格式:rewrite <regex> <replacement> [flag]

1、<regex>:正则表达式

2、<replacement>:跳转的内容或者路径

3、[flag]:标志位,标记

(1)last:继续匹配。本条规则匹配完成后,继续向下匹配新的location URI规则

internal redirection cycle while processing:

处理请求时发生了重写或者内部重定向循环,进入了无限循环,nginx内部循环最多可以执行10次,超过10次会报错500

(2)break:本条规则匹配完之后立即终止,页面内容变化,uri不变(用的较多)

(3)redirect:临时重定向(302) uri的地址会发生变

(4)permanent:永久重定向(301),uri的地址会发生变化

.* :表示匹配所有

$1 :表示捕获组,$1表示引用正则表达式的第一个捕获组

www.yyy.com/test/index.html 1.jpg

www.yyy.com/ky32/index.html 1.jpg

$1 匹配就是(.*)里的内容

(四)总结

1、表面上rewrite和location都可以跳转,但区别在于rewrite是在同一域名之内更改获取资源的路径

2、location是对路径访问控制,匹配到之后不再向下继续匹配

3、临时重定向和永久重定向(会影响搜索引擎的权重)

(1)永久重定向会加入搜索引擎的权重

(2)临时重定向不会加入搜索引擎的权重

(五)实验一:基于域名的跳转

www.yyy.com,公司业务变更,迁移到了新的域名www.benet.com代替,但是旧域名不能被废除(访问yyy可以跳转到benet,且匹配的uri不能变)

(六)实验二:基于ip地址的域名

公司业务新版本上线,用户访问网站统一显示固定的维护页面,只有公司的20.0.0.xx可以访问

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

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

相关文章

漏洞复现(CVE-2023-35843)

免责声明&#xff1a; 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

Nginx正向代理配置(http)

前言 在工作中我们经常使用nginx进行反向代理,今天介绍下怎么进行正向代理,支持http请求,暂不支持https 首先先介绍下正向代理和反向代理。 正向代理 在客户端&#xff08;浏览器&#xff09;配置代理服务器&#xff0c;通过代理服务器进行互联网访问。 反向代理 客户端只…

字符串匹配——KMP算法

目录 KMP&#xff08;Knuth Morris Pratt&#xff09; KMP算法复杂度分析 字符串匹配中除了简单的BF&#xff08;Brute Force&#xff09;、RK&#xff08;Rabin-Karp&#xff09;算法&#xff0c;还有更高效、较难理解的 BM&#xff08;Boyer-Moore&#xff09;和KMP&#…

Android之根据时区获取当前时间

文章目录 前言偶尔我们也会做多个国家的APP&#xff0c;难免少不了时间显示&#xff0c;所以我们就需要获取当前时区的当前时间&#xff0c;几句代码解决、 一、效果图二、实现步骤1.TimeUtil2.调用 总结 前言 偶尔我们也会做多个国家的APP&#xff0c;难免少不了时间显示&…

从公司搭建的gitlab代码仓拉取代码失败问题

从gitlab代码仓拉取代码失败问题解决 1.问题描述2.分析解决3.解决问题 1.问题描述 1.在访问到从公司搭建的gitlab代码仓后&#xff0c;选择了要拉取的地址&#xff0c;使用git拉取代码时&#xff0c;拉取失败&#xff0c;报错如下 2.分析解决 1.因为网页可以看到代码仓中这…

yolov7模型训练环境安装

ANACONDA Free Download | Anacondahttps://www.anaconda.com/download/进入ANACONDA安装的盘后输入python测试环境是否安装完成 进入 cd Scripts后 在同路径下下载&#xff0c;pip install opencv-python cd.. 退回上层 python 打开’ import cv2 cv2.__version__…

Redis学习1

NOSql型数据库 NoSQL&#xff08;Not Only SQL&#xff09;是一种数据库管理系统的范畴&#xff0c;它不使用传统的关系型数据库管理系统&#xff08;RDBMS&#xff09;模型。相对于传统的关系型数据库&#xff0c;NoSQL 数据库在数据存储和检索方面提供了更多的灵活性和可伸缩…

B端企业为什么需要软文推广?媒介盒子告诉你

在传统的营销概念中&#xff0c;大部分人认为B端企业不需要品牌曝光&#xff0c;企业只需要靠质量与服务就能获得稳定客源&#xff0c;而在互联网加速发展的今天&#xff0c;B端企业的营销方式也发生变化&#xff0c;有不少B端企业来找媒介盒子进行软文推广&#xff0c;接下来媒…

Git遇到问题收集

您的企业已过期或者超过配额&#xff0c;请升级或续订&#xff01; 如何解决&#xff1a; 此问题是企业仓库满额导致&#xff0c;联系公司的gitee管理人员进行处理

c++图像处理-----自适应阈值操作:`cv::adaptiveThreshold()`

自适应阈值操作&#xff1a;cv::adaptiveThreshold() cv::adaptiveThreshold()是OpenCV库中的一个函数&#xff0c;用于图像处理中的自适应阈值二值化操作。这个函数通常用于将灰度图像转换为二值图像&#xff0c;其中每个像素的阈值是根据其周围邻域的像素值自动确定的&#…

(2023|CVPR,中文,扩散,知识增强,去噪专家组合)ERNIE-ViLG 2.0:利用知识增强的去噪专家组合改进文本到图像扩散模型

ERNIE-ViLG 2.0: Improving Text-to-Image Diffusion Model with Knowledge-Enhanced Mixture-of-Denoising-Experts 公众号&#xff1a;EDPJ&#xff08;添加 VX&#xff1a;CV_EDPJ 或直接进 Q 交流群&#xff1a;922230617 获取资料&#xff09; 目录 0. 摘要 1. 简介 …

Windows 进程监视工具

Windows 进程监视器是一种工具&#xff0c;可帮助 IT 管理员监视其 Windows IT 基础结构终结点中的关键进程&#xff0c;并确保其持续可用性、一致的运行状况和最佳性能。通过主动监视关键服务&#xff0c;Windows 进程监视器可帮助 IT 管理员确保其 Windows 进程不会意外关闭或…

纯 CSS 实现瀑布流布局的方法

纯 CSS 实现瀑布流布局的方法 这种方式兼容性不是很好&#xff0c;全部支持需要些时间&#xff0c;但是目前是可以使用 css 写出来的 display: grid; grid-template-columns: repeat(4, 1fr); grid-gap: 10px; grid-template-rows: masonry;全部的 css .container {display:…

C语言中的文件操作函数

C语言中的文件操作函数_c语言文件操作函数_点子李的博客-CSDN博客C语言文件操作_c语言文件操作函数https://blog.csdn.net/qq_53332052/article/details/128470575?utm_mediumdistribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-1-128470575-blog-125…

【ROS】ros-noetic和anaconda联合使用(1)

【ROS】ros-noetic和anaconda联合使用&#xff08;1&#xff09; 文章目录 【ROS】ros-noetic和anaconda联合使用&#xff08;1&#xff09;1. 安装anaconda2. 创建虚拟环境3. 查看python解释器路径4. 在虚拟环境中使用任意的包5. 创建工作空间和ros功能包进行测试Reference 1.…

Liunx系统管理的引导过程与服务控制

引导过程&#xff1a; liunx系统的开机过程&#xff1a; 开机自检(BIOS):linux主机开机之后&#xff0c;根据主板BIOS中的设备&#xff0c;对CPU内存 显卡 键盘等等设备进行初步检测 检测成功之后&#xff0c;根据预设的启动柜顺序进行系统控制权的移交 一般情况下&#xf…

阿里云云安全中心详细介绍(原态势感知)功能价格说明

阿里云云安全中心&#xff08;原态势感知&#xff09;是一个实时识别、分析、预警安全威胁的服务器主机安全管理系统&#xff0c;云安全中心功能支持漏洞扫描与修复、基线检查、防勒索、防病毒、防篡改、威胁检测模型等功能&#xff0c;云安全中心基础版免费、防病毒班432元一年…

网络安全—小白学习笔记

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟入…

水库大坝安全监测是什么和主要作用?

水库大坝安全监测是指通过仪器观测和巡视检查对水利水电工程主体结构、地基基础、两岸边坡、相关设施以及周围环境所作的测量及观察。大坝安全监测是作为水库大坝安全管理的重要组成部分&#xff0c;是掌握水库大坝安全性态的重要手段&#xff0c;是科学调度、安全运行的前提。…

Java进阶 之 再论面向对象(3)——构造方法Constructors 以及 调用的分析 JavaBean的概念 构造函数中this关键字

前言 在前面博客中&#xff0c;我们从面向过程和面向对象的编程思想谈起&#xff0c;阐述了类和对象在Java中的编程中的应用&#xff0c;此外&#xff0c;对于对象的内存&#xff0c;变量作用域&#xff0c;参数传递等进行了阐述。 Java进阶 之 再论面向对象&#xff08;1&am…