Nginx服务的rewrite模块(理论详解)
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,Rewrite跳转场景URL看起来更规范,合理;企业会将动态URL地址伪装成静态地址提供服务;网址换新域名后,让旧的访问跳转到新的域名上;服务端某些业务调整。Rewrite跳转实现Rewrite实用场
千家信息网最后更新 2025年12月02日Nginx服务的rewrite模块(理论详解)
Rewrite跳转场景
- URL看起来更规范,合理;
- 企业会将动态URL地址伪装成静态地址提供服务;
- 网址换新域名后,让旧的访问跳转到新的域名上;
- 服务端某些业务调整。
Rewrite跳转实现

Rewrite实用场景
Nginx跳转需求的实现方式
- 使用rewrite进行匹配跳转
- 使用if匹配全局变量后跳转
- 使用location匹配再跳转
rewrite放在server{},if{},location{}段中
对域名或参数字符串
- 使用if全局变量匹配
- 使用proxy_pass反向代理
常用的正则表达式元字符
| 字符 | 说明 |
|---|---|
| ^ | 匹配输入字符串的起始位置 |
| $ | 匹配输入字符串的结束位置 |
| * | 匹配前面的字符零次或多次 |
| + | 匹配前面的字符一次或多次 |
| ? | 匹配前面的字符零次或一次 |
| . | 匹配除\n之外的任何单个字符,使用诸如"[.\n]"之类的模式,可匹配包括"\n"在内的任意字符 |
| \d | 匹配纯数字 [0-9] |
| {n} | 重复多次 |
| {n,} | 重复n次或更多次 |
| [c] | 匹配单个字符c |
| [a-z] | 匹配a-z小写字母的任意一个 |
| [a-zA-Z] | ] 匹配a-z小写字母或A-Z大写字母的任意一个 |
Rewrite命令
语法:
rewrite [flag]; 正则 跳转后的内容 rewrite支持的flag标记 flag标记说明
| 标记 | 说明 |
|---|---|
| last | 相当于Apache的[L]标记,表示完成rewrite |
| break | 本条规则匹配完成即终止,不再匹配后面的任何规则 |
| redirect | 返回302临时重定向,浏览器地址会显示跳转后的URL地址,爬虫不会更新url |
| permanent | 返回301永久重定向,浏览器地址栏会显示跳转后的URL地址,爬虫更新url |
last和break比较
| last | break | |
|---|---|---|
| 使用场景 | 一般写在server和if中 | 一般使用在location中 |
| URL匹配 | 不终止重写后的url匹配 | 终止重写后的url匹配 |
location分类
location = patt {} [精准匹配]location patt {} [一般匹配]location ~ patt {} [正则匹配]正则匹配的常用表达式
| 标记 | 说明 |
|---|---|
| ~ | 执行一个正则匹配,区分大小写 |
| ~* | 执行一个正则匹配,不区分大小写 |
| !~ | 执行一个正则匹配,区分大小写不匹配 |
| !~* | 执行一个正则匹配,不区分大小写不匹配 |
| ^~ | 普通字符匹配;使用前缀匹配。如果匹配成功,则不再匹配其他location |
| = | 普通字符精准匹配。也就是完全匹配 |
| @ | 定义一个命名的location,使用在内部定向时 |
location优先级
相同类型的表达式,字符创长的会优先匹配
按优先级排列
- = 类型
- ^~ 类型表达式
- 正则表达式(~和~*)类型
- 常规字符串匹配类型,按前缀匹配
- 通常匹配(/),如果没有其他匹配,任何请求都会匹配到
比较rewrite和location
相同点
都能实现跳转
不同点
- rewrite是在同一域名内更改获取资源的路径
- location是对一类路径做控制访问或方向代理,还可以proxy_pass到其他机器
rewrite会写在location里执行顺序 - 执行server块里面的rewrite指令
- 执行location匹配
- 执行选定的location中的rewrite指令
location优先级的示例
##精确匹配/,主机名后面不能带任何字符串location = / {[ configuration A ] }##所有的地址都以/开头,这条规则将匹配到所有请求,但正则和最长字符串会优先匹配location / {[ configuration B ] }##匹配任何以/documents/开头的地址,当后面正则表达式没有匹配到时,才起作用location /documents/ {[ configuration C ]}##匹配任何以/documents/abc开头的地址,当后面正则表达式没有匹配到时,才会起作用location ~ /documents/abc {[ configuration D ]}##以/images/开头的地址,匹配符合后,停止往下匹配location ^~ /images/ {[ configuration E ]}##匹配所有以gif结尾的请求,/images/下的图片会被[configuration E]处理,因为^~的优先级更高location ~* \.(gif|jpg|jpeg)$ {[ configuration F ]}##最长字符匹配到/images/abc,优先级最低location /images/abc {[ configuration G ]}##以/images/abc开头的,优先级次之location ~ /images/abc {[ configuration H ]}##如果和正则~/images/abc/1.html相比,正则优先级更高location /images/abc/1.html {[ configuration I ]}location优先级规则
匹配某个具体文件
(location =完整路径) > (location ^~完整路径) > (location ~*完整路径) > (location ~完整路径) > (location 完整路径) > (location /)用目录做匹配访问某个文件
(location=目录) > (location ^~目录/) > (location~目录)>(location ~*目录) > (location 目录) > (location /)
字符
正则
地址
优先级
表达式
路径
目录
字符串
开头
标记
类型
域名
大小
规则
场景
字母
服务
普通
最长
相同
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
coremail服务器
南京企业管理软件开发
不同数据库如何同步数据
服务器配置如何恢复
杭州设备报修管理软件开发
软件开发没基础可以去吗
想去学习网络技术
疾病和靶点的数据库
达索软件开发公司
数据库的ipos
网络安全易画手抄报
数据库四个特性的实现原理
柯米网络技术有限公司
济南云沃网络技术有限公司
如何获取ncbi数据库
国际服战斗服务器异常图片
nas可以用作网站服务器吗
网络安全 专报
计算机软件开发价格
科研数据库使用情况
如何安装使用wind数据库
学人工智能可以从事软件开发吗
网络安全防控常态
网络安全我知道观后感
网络安全保险哪家在做
浙江专业服务器散热器生产厂家
服务器租用哪个好
东京网络安全世界第一
南京创新计算机网络技术服务系统
产品编号的数据库代码