Nginx Rewrite的应用

目录

一、Nginx Rewrite

二、Rewrite的功能 

1.Rewrite  跳转场景

2.Rewrite  跳转实现

3.Rewrite  实际场景

4.Rewrite  正则表达式

5.Rewrite  命令/语法格式

6.location  分类

7.location  优先级

8.Rewrite和location比较

9.根据以上了解,小案例来操作实现我们在企业跳转案例

三、Rewrite  跳转场景

五、Rewrite命令/语法

六、location分类

1.location 大致可以分为三类

2.location 常用的匹配规则

3.location 优先级

七、跳转案例

1.基于域名的跳转

①关闭防火墙和安全机制

②修改配置文件

③域名解析

④重启服务

⑤浏览器验证查看

 2.基于客户端 IP 访问跳转

①修改配置文件

② 创建网页返回执行文件

 ③重启服务

 ④前往浏览器验证

​编辑3.基于旧域名跳转到新域名后面加目录

①修改配置文件

②.域名解析

③重启服务

④浏览器测试

4.基于参数匹配的跳转

①.修改配置文件

 ②.重启服务

 ③.浏览器测试

5.基于目录下所有 php 结尾的文件跳转

①.修改配置文件

②.重启服务

③.浏览器测试

 6.基于最普通一条 url 请求的跳转

① .修改配置文件

​②.重启服务

③.浏览器测试


一、Nginx Rewrite

Rewrite主要的功能是实现URL重写,Nginx 的 Rewrite 规则采用 PCRE Perl 兼容正则表达式的语法进行规则匹配,如相使用 Nginx 的 Rewrite 功能,在编译 Nginx 前要编译安装 PCRE 库。Rewrite主要实现url地址重写,以及重定向,就是把传入web的请求重定向到其他url的过程。

rewrite和location的功能有点相像,都能实现跳转,主要区别在于rewrite常用于同一域名内更改获取资源的路径,而location是对一类路径做控制访问和反向代理,可以proxy_pass到其他服务器。

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

rewrite只能放在server{},location{},if{}中,

并且只能对域名后边的除去传递的参数外的字符串起作用。

二、Rewrite的功能 

1.Rewrite  跳转场景

2.Rewrite  跳转实现

3.Rewrite  实际场景

4.Rewrite  正则表达式

5.Rewrite  命令/语法格式

6.location  分类

7.location  优先级

8.Rewrite和location比较

9.根据以上了解,小案例来操作实现我们在企业跳转案例

三、Rewrite  跳转场景

1.URL看起来更规范、合理

2.企业会将动态URL地址伪装成静态地址提供服务

3.网址换成新域名后,让旧的访问跳转到新的域名上

4.服务端某些业务调整

URL:就是一个具体路径/位置,指的就是一个拥有相同类型/特性的对象集合

URN:用名称定位

四、Nginx跳转需要的实现方式

使用Rewrite进行匹配跳转——>防盗链

使用if匹配全局变量后跳转——>centos系统的全局变量不是Nginx服务本身全局变量

使用location匹配再跳转——>匹配的访问URL路径,location可以匹配本地重写以及跨服务器跳转

Rewrite放在server{} ,  if{} , location{ } 段中

location只对域名后边的除去传递参数外的字符串起作用

对域名或参数字符串

使用if全局变量匹配

使用proxy_pass反向代理

五、Rewrite命令/语法

Rewrite         <regex>          <replacement>       [flag];

                      正则                跳转后的内容         Rewrite支持flag标记

flag标记说明

标记

last                 相当于Apache的[L]标记,表示完成Rewrite,在本条规则完成后,继续向下匹配新                           的location URL规则,一般在server和if当中

break              本条规则匹配完成即终止,不再匹配后面规则

redirect           返回302临时重定向,浏览器地址会显示跳转后的URL地址,爬虫不会更新URL

permanent      返回301永久重定向,浏览器地址会显示跳转后URL地址,爬虫更新URL

break和last类似,但是不会重新发起一次处理过程,而是直接放回处理结果

redirect            该标记表示当前规则匹配成功后立即进行重定向操作

permanent       该标记和redirect类似,但是永久重定向

set                    标记表示当前规则匹配成功设置一个变量,并把变量传入下一条规则

六、location分类

1.location 大致可以分为三类

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

一般匹配:location / {...} 
正则匹配:location ~ / {...}

2.location 常用的匹配规则

= :进行普通字符精确匹配,也就是完全匹配。  location = yudh      www.kgc.com/yudh
^~ :表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其它 location。
~ :区分大小写的匹配。
~* :不区分大小写的匹配。
!~ :区分大小写的匹配取非。
!~* :不区分大小写的匹配取非。

3.location 优先级

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

七、跳转案例

1.基于域名的跳转

①关闭防火墙和安全机制

②修改配置文件

vim /usr/local/nginx/conf/nginx.conf

③域名解析

echo "192.168.146.110www.kgc.com www.benet.com" >> /etc/hosts 

④重启服务

systemctl restart nginx

⑤浏览器验证查看

 2.基于客户端 IP 访问跳转

①修改配置文件

vim /usr/local/nginx/conf/nginx.conf

② 创建网页返回执行文件

mkdir -p /var/www/html/
echo "<h1>We are maintaining now!</h1>" > /var/www/html/weihu.html

 ③重启服务

systemctl restart nginx

 ④前往浏览器验证

本机浏览器

用另一台不同IP地址的浏览器测试

3.基于旧域名跳转到新域名后面加目录

①修改配置文件

vim /usr/local/nginx/conf/nginx.conf

②.域名解析

③重启服务

systemctl restart nginx

④浏览器测试

 

使用浏览器访问 http://bbs.kgc.com/post/1.html 跳转到 http://www.kgc.com/bbs/post/1.html

4.基于参数匹配的跳转

①.修改配置文件

vim /usr/local/nginx/conf/nginx.conf

 ②.重启服务

systemctl restart nginx

 ③.浏览器测试

使用浏览器访问 http://www.kgc.com/100-200-100.html 或 http://www.kgc.com/100-100-100.html 跳转到http://www.kgc.com页面。

5.基于目录下所有 php 结尾的文件跳转

①.修改配置文件

 vim /usr/local/nginx/conf/nginx.conf

②.重启服务

systemctl restart nginx

 ③.浏览器测试

浏览器访问 http://www.kgc.com/upload/123.php 跳转到http://www.kgc.com页面。

 6.基于最普通一条 url 请求的跳转

① .修改配置文件

vim /usr/local/nginx/conf/nginx.conf

②.重启服务

③.浏览器测试

浏览器访问 http://www.kgc.com/abc/123.html 跳转到http://www.kgc.com页面。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vtk绘制折线

vtk绘制折线 引言示例一开发环境项目结构示例代码运行结果 示例二概况示例代码运行结果 引言 本文通过两种方式来绘制折线。示例一中通过vtkPolyLine来绘制折线;示例二中通过vtkLineSource来绘制折线&#xff0c;只不过示例二中折线是由一段一段的直线绘制&#xff0c;最后构成…

Prometheus+Grafana普罗米修斯搭建+监控MySQL

PrometheusGrafana普罗米修斯搭建监控MySQL 一&#xff0c;Prometheus 1.什么是Prometheus&#xff1f; ​ Prometheus 是 Cloud Native Computing Foundation 的一个监控系统项目, 集采集、监控、报警等特点于一体。 ​ Prometheus主要受启发于Google的Brogmon监控系统&…

h5手写签名示例

前言 业务中需要用户进行签字&#xff0c;如何让用户在手机端进行签字&#xff1f; 示例如下 代码已分享至Gitee: https://gitee.com/lengcz/qianming 原示例&#xff1a; https://www.jq22.com/jquery-info13488 H5实现手写签字 创建一个html页面 <!DOCTYPE html> …

计算机网络--网络编程(1)

简单认识一下传输层中的UDP和TCP&#xff1a; TCP&#xff1a;有链接&#xff0c;可靠传输&#xff0c;面向字节流&#xff0c;全双工 UDP&#xff1a;无连接&#xff0c;不可靠传输&#xff0c;面向数据报&#xff0c;全双工 有链接类似于打电话&#xff0c;通了就是有链接。…

在Linux上顺理成章在Windows上令人费解的事情你都知道吗?

&#x1f4a2;分享一些在Linux上顺理成章但在Windows上令人费解的事情有哪些你都知道吗? 权限管理&#xff1a;在Linux上&#xff0c;权限管理非常直观&#xff0c;并且可以通过命令行轻松地进行。而在Windows上&#xff0c;权限管理更加复杂&#xff0c;需要使用安全主体和权…

【Linux】ubuntu20.04上使用xrdp协议时使用不同的桌面环境,在xfce和gnome上转换

一、问题背景 笔者在按照网上一篇文章配置xrdp远程桌面服务后&#xff0c;发现得到的桌面是xfce&#xff0c;而不是笔者熟悉的原生gnome桌面。 因为感觉到别扭&#xff0c;所以我还是决定换一下。 二、解决办法 2.1 编辑主目录的.xsessionrc文件 创建或编辑名为 .xsessionr…

基于深度学习的高精度人脸口罩检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度人脸口罩检测识别系统可用于日常生活中或野外来检测与定位人脸口罩目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的人脸口罩目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5…

Python:通过飞书API接口发送通知消息

通过飞书发送应用消息&#xff0c;及时收到线上异常消息 总的来说&#xff0c;飞书消息发送的前戏&#xff0c;要比企业微信和钉钉稍复杂 相关连接 官网 https://www.feishu.cn/管理后台 https://www.feishu.cn/admin开放平台 https://open.feishu.cn/ 参数准备 首先&…

关于jetBrains的插件translation的使用

文章目录 前言国内使用问题关于无法翻译问题关于无法语音解析问题关于百度翻译Api获取关于百度引擎的invalid account(未解决)关于阿里翻译Api获取关于阿里翻译引擎Wrong request parameter(未解决)有道翻译Api关于有道Ip Address错误(未解决) 前言 translation是一个非常好用…

二.《UE4奥丁》解密哈希ID

哈希表概念 1.相信大家经常在UE4或者UE5游戏逆向中遇到下面的代码段 $ > > 41:8B42 0C > mov eax,dword ptr ds:[r10C] > $4 > 3B05 AE589B04 > cmp eax,dword ptr ds:[7FF7B68B74F4] …

spring boot 整合EasyPoi导入导出,下载模版功能

引入依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.5.RELEASE</version><relativePath/> <!-- lookup parent from repository --></…

IIS安装localhost显示下载,urlrewrite设置

1.取消ftp服务勾选 2. ping localhost ping 127.0.0.1 如果显示 &#xff1a;&#xff1a;1 则需要禁用ipv6 在注册表 找到并单击下面的注册表子项&#xff1a; HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\ 双击“DisabledComponents”以修…