Nginx的rewrite

本文介绍了Nginx中正则表达式的使用,重点讲解了URL rewrite的配置,包括旧域名跳转、IP访问跳转、参数匹配跳转以及正则匹配的rewrite规则。此外,还详细阐述了location的匹配规则及其在处理静态文件和动态请求中的应用。
摘要由CSDN通过智能技术生成

目录

 一、nginx中的正则

 二、nginx的URL rewrite跳转

1、rewrite简介

2、rewrite跳转配置

2.1基于旧域名往新域名的跳转

2.2基于IP访问跳转

2.3基于参数匹配跳转

2.4正则匹配相应规则的url的rewrite

三、nginx的location跳转匹配

1、location的匹配规则

2、location最少数量

Ⅰ、第一个规则

 Ⅱ、第二个规则

Ⅲ、第三个规则


 一、nginx中的正则

nginx中也是支持正则表达式的,使用正则表达式可以精确的匹配,减小服务器的资源消耗,提高服务器的性能。以下是常用的正则表达式元字符:

^ :匹配输入字符串的起始位置
$ :匹配输入字符串的结束位置
* :匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll”
\+ :匹配前面的字符一次或多次。如“ol+”能匹配“ol”及“oll”、“olll”,但不能匹配“o”
? :匹配前面的字符零次或一次,例如“do(es)?”能匹配“do”或者“does”,”?”等效于”{0,1}”
. :匹配除“\n”之外的任何单个字符,若要匹配包括“\n”在内的任意字符,请使用诸如“[.\n]”之类的模式
 \ :将后面接着的字符标记为一个特殊字符或一个原义字符或一个向后引用。如“\n”匹配一个换行符,而“\$”则匹配“$”
\d :匹配纯数字
{n} :重复 n 次
{n,} :重复 n 次或更多次
{n,m} :重复 n 到 m 次
[] :定义匹配的字符范围
[c] :匹配单个字符 c
[a-z] :匹配 a-z 小写字母的任意一个
[a-zA-Z0-9] :匹配所有大小写字母或数字
() :表达式的开始和结束位置
| :或运算符

 二、nginx的URL rewrite跳转

Nginx 是通过 ngx_http_rewrite_module 模块支持 url 重写、支持 if 条件判断,但不支持 else。另外该模块需要 PCRE 支持,应在编译 Nginx 时指定 PCRE 支持,默认已经安装。

根据相关变量重定向和选择不同的配置,从一个 location 跳转到另一个 location,不过这样 的循环最多可以执行 10 次,超过后 Nginx 将返回 500 错误。

同时,重写模块包含 set 指令,来创建新的变量并设其值,这在有些情景下非常有用的,如记录条件标识、传递参数到其他location、记录做了什么等等。
 

1、rewrite简介

格式

rewrite < regex > < replacement > [flag]
           正则     跳转的/转换的    标记

 flag的说明

标记  说明
last 相当于Apache的【L】标记,表示完成rewrite
break  本条规则匹配完成即终止,不在匹配后面的任何规则
redirect   返回302临时重定向,浏览器地址栏会显示跳转后的URL地址,爬虫不会更新url
permanent   返回301永久重定向,浏览器地址栏会显示跳转后的URL地址,爬虫更新url

其中,last和break的区别如下

last break
使用场景
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值