nginx的重定向rewrite

nginx的重定向(rewrite)

location匹配

location匹配的就是后面的URI

location匹配的分类和优先级*

1、精确匹配 location=/ 对字符串进行完全匹配,必须完全符合,后面内容要写全

2、正则匹配 ^~ 以 xxx为开头

~区分大小写的匹配

~*不区分大小写

!~ :区分大小写取反

!~* 不区分大小写取反

3、一般匹配

location / 字符串

优先级: 精确匹配 > 正则 > 一般 和顺序无关

location=/ > location ^~ > location /

总结:

1.location = 完整路径 (1.jpg 不能是1 或 1. 1.j 要写全)

2.location ^~

3.location ~ 并列 location~*

4.location / 部分起始位置(有字符串)

5.location / (/后面什么都没有)

实际网站中使用的规则

怎么分配选择location匹配

第一
location = / {
​ root html;
​ index index.html index.htm
}
网站的首页

第二个必选规则 处理静态请求页面
location ^~ /static/ {
​ root /web/static/;
index index.html index.htm;
}
匹配静态页面

location ~* \ .(jpg|gif|png|jpeg|css)${
root /web/pictures/;
index index.html index.htm
}
访问图片或指定后缀名

第三规则 一般是通用规则,用来转发.php .js为后缀的动态请求到后端服务器(数据库)
location / {
proxy_pass
}
转发后端请求和负载均衡

rewrite重定向:

rewrite把当前访问的页面跳转到其他页面

rewrite的工作方式:通过nginx的全局变量或者自定义变量,结合正则表达式和标志位实现url的重定向

nginx的变量

$uri 客户端请求的uri地址

$host:请求的主机名

$http_user_agent:客户端请求的浏览器和操作系统

$http_referer:请求头的referer信息,表示当前页面来源的url

$remote_addr:客户端的ip地址

$remote_port :客户端的端口号

$server_addr:服务端的ip地址

$server_port:服务端的端口号

$request_method:获取客户端请求的方法

$scheme:请求的协议,要么是http 要么是https

x_forwarded_for:用来获取请求头当中客户端的真实ip地址。代理服务器添加,在代理服务器中指示客户端的ip地址。

X-Real-IP 客户端真实的ip地址

标志位:

permanent:永久重定向,返回码是301,浏览器地址栏会显示跳转后的url地址
redirect 临时重定向 返回码 302 浏览器地址栏会显示跳转后的url地址
break 永久重定向,返回码301 ,但 匹配到规则后不会再向下匹配其他规则,url也不会变化
last 重定向 但会继续向下匹配其他的location规则

rewrite执行顺序:

1.server模块的rewrite优先级最高

2.匹配location的规则

3.执行选定的location规则

rewrite语法

rewrite + 正则表达式 + 跳转后的内容 + 标志位 ;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Zoom使用的基本步骤和注意事项

Zoom是一款功能强大的视频会议软件,广泛应用于远程办公、在线教育、团队协作等多个场景。以下是Zoom使用的基本步骤和注意事项: 一、注册与登录 注册Zoom账户: 访问Zoom官方网站(如zoom.us),点击“注册”…

Games101学习笔记 Lecture16 Ray Tracing 4 (Monte Carlo Path Tracing)

Lecture16 Ray Tracing 4 (Monte Carlo Path Tracing 一、蒙特卡洛积分 Monte Carlo Integration二、路径追踪 Path tracing1.Whitted-Style Ray Tracings Problems2.只考虑直接光照时3.考虑全局光照①考虑物体的反射光②俄罗斯轮盘赌 RR (得到正确shade函数&#x…

精准畜牧业:多维传感监测及分析动物采食行为

全球畜牧业呈现出一个动态且复杂的挑战。近几十年来,它根据对动物产品需求的演变进行了适应,动物生产系统需要提高其效率和环境可持续性。在不同的畜牧系统中有效行动取决于科学技术的进步,这允许增加照顾动物健康和福祉的数量。精准畜牧业技…

JavaScript-WebAPI

文章目录 JS组成什么是 webApis 和APIDOM 简介document 对象 获取 DOM 对象利用css选择器来获取DOM元素选择指定css选择器的所有元素其他获取DOM元素方法(了解) 操作元素内容对象.innerText对象.innerHTML 操作元素属性操作元素常用属性操作元素样式属性…

pytorch中的contiguous()

官方文档:https://pytorch.org/docs/stable/generated/torch.Tensor.contiguous.html 其描述contiguous为: Returns a contiguous in memory tensor containing the same data as self tensor. If self tensor is already in the specified memory forma…

羊大师:羊奶养生,解锁健康之道的新密码

在探寻健康与养生的旅途中,我们总渴望找到那把开启健康之门的钥匙。而今,羊奶以其独特的营养价值和健康益处,正悄然成为那把解锁健康之道的新密码。 羊奶,自古以来便是自然赋予的珍贵礼物。它富含优质蛋白、多种维生素及矿物质&am…

pandas数据分析(6)

算数运算 和Numpy数组一样,DataFrame和Series也利用了向量化技术。例如: 不过pandas真正强大之初在于自动对齐机制:当对多个DataFrame使用算数运算符时,pandas会自动将它们按照列或行索引对齐。 结果DataFrame的索引和列是两个Da…

day02-统计数据

numpy统计学 1.求平均值[数组名.mean()/np.mean(数组名)] m1 np.arange(20).reshape((4,5))m1.mean() #9.5若想要求某一维的平均值,设置axis参数,多维数组元素指定: axis 0,将从上往下计算。axis 1,将从左往右计算…

VIM介绍

VIM(Vi IMproved)是一种高度可配置的文本编辑器,用于有效地创建和更改任何类型的文本。它是从 vi 编辑器发展而来的,后者最初是 UNIX 系统上的一个文本编辑器。VIM 以其键盘驱动的界面和强大的文本处理能力而闻名,是许…

拼接各列内容再分组统计

某个表格的第1列是人名,后面多列是此人某次采购的产品,一个人一次可以采购多个同样的产品,也可以多次采购。 ABCD1JohnAppleAppleOrange2PaulGrape3JohnPear4SteveLycheeGrape5JessicaApple 需要整理成交叉表,上表头是产品&…

透过 Go 语言探索 Linux 网络通信的本质

大家好,我是码农先森。 前言 各种编程语言百花齐放、百家争鸣,但是 “万变不离其中”。对于网络通信而言,每一种编程语言的实现方式都不一样;但其实,调用的底层逻辑都是一样的。linux 系统底层向上提供了统一的 Sock…

openlayers中区域掩膜的实现

概述 在前文完成了mapboxGL中区域掩膜的实现。近日有人问到说在openlayers中如何实现,本文就带大家看看如何在openlayers中实现区域掩膜。 实现效果 实现 1. 实现思路 在地图容器中添加一个canvas,设置其在map之上;监听map的postrender事…

Vue2-Vue Router前端路由实现思路

1.路由是什么? Router路由器:数据包转发设备,路由器通过转发数据包(数据分组)来实现网络互连 Route路由:数据分组从源到目的地时,决定端到端路径的网络范围的进程 | - 网络层 Distribute分发…

时空预测+特征分解!高性能!EMD-Transformer和Transformer多变量交通流量时空预测对比

时空预测特征分解!高性能!EMD-Transformer和Transformer多变量交通流量时空预测对比 目录 时空预测特征分解!高性能!EMD-Transformer和Transformer多变量交通流量时空预测对比效果一览基本介绍程序设计参考资料 效果一览 基本介绍…

顶级10大AI测试工具

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Oracle Database 23ai新特性:DB_DEVELOPER_ROLE角色

角色介绍 从 Oracle Database 23ai 开始,新角色“DB_DEVELOPER_ROLE”允许管理员快速分配开发人员为 Oracle 数据库设计、构建和部署应用程序所需的所有必要权限。(包括构建数据模型所需的系统权限以及监视和调试应用程序所需的对象权限)。通…

【数据结构】02.顺序表

一、顺序表的概念与结构 1.1线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是⼀种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构&#xff0…

上位机图像处理和嵌入式模块部署(mcu项目1:实现协议)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 这种mcu的嵌入式模块理论上都是私有协议,因为上位机和下位机都是自己开发的,所以只需要自己保证上、下位机可以通讯上&…

ELK 企业实战7

ELKkafkafilebeat企业内部日志分析系统 1、组件介绍 1、Elasticsearch: 是一个基于Lucene的搜索服务器。提供搜集、分析、存储数据三大功能。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的&#xff…

[数据集][目标检测]刀具匕首持刀检测数据集VOC+YOLO格式8810张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):8810 标注数量(xml文件个数):8810 标注数量(txt文件个数):8810 标注…