Rewrite跳转原理和实现方法
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,本文将为大家详细介绍Rewrite的跳转原理和实现方法,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,我们先来看看Rewrite的跳转原理:Rewrite跳转场景URL看起来更规范,合
千家信息网最后更新 2025年01月24日Rewrite跳转原理和实现方法
本文将为大家详细介绍Rewrite的跳转原理和实现方法,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,我们先来看看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 /)
看完上述内容,你们对Rewrite的跳转原理和实现方法大概了解了吗?如果想了解更多相关文章内容,欢迎关注行业资讯频道,感谢各位的阅读!
字符
正则
地址
优先级
表达式
路径
目录
字符串
开头
标记
类型
内容
域名
大小
规则
原理
场景
字母
方法
普通
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手机web软件开发
找前端软件开发工作包住的多吗
张家港数据网络技术哪家好
数据库的分布式
软件开发公司年度工作目标
东信网络技术骗人
积极软件开发系统都有哪些
互联网环境下的信息传播与网络安全
服务器 ghost
服务器防挂马
网络安全 宣传海报
电梯星际服务器
探探软件开发要多少钱
根据账号登录不同的数据库
共筑网络安全防线共守网络安全
网络安全工作怎样进行
南京重型软件开发简介
西安小软件开发公司有哪些
软件开发者 赚钱
香港服务器租用费
中国互联网科技概念股
基础设施的网络安全保护
朗吉信网络技术有限公司
网络安全专硕以后干嘛的
达梦数据库前景
不用链接服务器的远程控制
怎样在服务器目录下打文字
家庭网络服务器主机名怎么查找
上海巡检软件开发哪家好
魔兽世界各服务器开启条件