读书笔记-Nginx rewrite

本文详细介绍了Nginx的rewrite模块,用于实现URL重写功能。通过Perl兼容正则表达式,可以设置各种重定向规则。例如,`rewrite ^/(.*) http://www.test.com/$1 permanent;`将所有请求重定向到www.test.com,并使用301永久重定向。此外,还讨论了不同的flag标记,如last、break、redirect和permanent,它们在URL处理中的作用和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是Nginx rewrite

Nginx  rewrite 的主要功能是实现URL地址重写,Nginx的rewrite规则需要PCRE软件的支持,即通过Perl兼容正则表达式语法进行规则匹配。

Nginx rewrite 语法

1、rewrite 指令语法: rewrite regex replacement [flag];

默认值: none

应用位置: server、location、if

rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分的内容,重定向到replacement部分,结尾是flag标记

rewrite ^/(.*) http://www.test.com/$1 permanent;

上述指令中,rewrite为固定关键字,表示开启一条rewrite匹配规则,regext部分是^/(.*),这是一个正则表达式,表示匹配所有,匹配成功后跳转到http://www.test.com/$1.这里的$1是取前面regex部分括号里的内容,结尾的permanent;是永久301重定向标记,即跳转到后面的http://www.test.com/$1地址上。

2、regex常用正则表达式说明

 

3、rewrite指令结尾的flag标记说明

rewrite指令最后一项参数flag标记的说明
flag标记符号说明应用场景
last本条规则匹配完成后,继续向下匹配新的location URI规则 
break本条规则匹配完成后即终止,不再匹配后面的任何规则 
redirect返回302临时重定向,浏览器地址栏会显示跳转后的URL地址 
permanent返回301永久重定向,浏览器地址栏会显示跳转后的URL地址 

last和break用来实现URL重写,浏览器地址栏的URL地址不变,但在服务器端访问的程序及路径发生了变化。

redirect和permanent用来实现URL跳转,浏览器地址栏会显示跳转后的URL地址。

使用alias指令是必须用last标记,使用proxy_pass指令时要使用break标记。
last标记在本条rewrite规则执行完毕后,会对其所在的server{...}标签重新发起请求,而break标记则会在本条规则匹配完成后,终止匹配,不在匹配后面的规则。

4、不同flag的配置案例,以及测试结果展示;(待整理)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值