Nginx Rewrite

Rewrite跳转场景

URL看起来更加规范、合理
企业会将动态URL地址伪装成静态地址提供服务
网址换新域后,让旧的访问跳转到新的域名上
服务端某些业务调整

Rewrite实际场景

Nginx跳转需求的实现方式
使用rewrite进行匹配跳转
使用if匹配全局变量后跳转
使用location匹配在跳转
rewrite放在server{},if{},location{}段中
location只对域名后边的除去传递参数外的字符串起作用
对域名或参数字符串
使用if全局变量匹配
使用proxy pass反向代理

Rewrite命令

Rewrite命令语法
rewrite [flag];

flag标记说明

last: 相当于apache的[L]标记,表示完成write
break: 本条规则匹配完成即终止,不再匹配后的任何规则
redirect:返回302临时重定向,浏览器地址会显示添砖后的URL地址,爬虫不会更新url
permanent:返回301永久重定向,浏览器地址栏会显示跳转后的URL

last和break比较

last使用场景一般写在server和if中
break使用场景一般使用在location中
last的URL匹配不终止重写后的url匹配
break的URL终止重写url匹配

location分类

分类 location = patt{}[精准匹配]
location patt {} [一般匹配]
location ~ patt{}[正则表达式]

正则匹配的常用表达式

~ 执行一个正则匹配,区分大小写
~* 执行一个中则匹配,不分大小写
!~执行一个正则匹配,区分大小写不匹配
!~*执行一个正则表达式,不区分大小写不匹配
^~普通字符匹配;使用前缀匹配。如果匹配成功,则不再匹配其他location
= 普通字符精准匹配,也就是完全匹配

location优先级

相信类型的表达式,字符串长的会优先匹配
按优先级排列
=类型
^~类型表达式
正则表达式(*)类型
常规字符串匹配类型,按前缀匹配
通用匹配(/),如果没有其他匹配,任何请求都会匹配到

location优先级规则

匹配某个具体文件
(location=完整路径)>(location^完整路径)>location*完整路径)= (location ~ 完整路径)>(location完整路径)>(location /)
用目录做匹配访问某个文件
(location=目录)>(location^目录/)>(locatioon目录)=(location~*目录)/>(location 目录)>(location /)
用目录做匹配做匹配访问某个文件
(location= 目录)>(location^~目录/)>(locatiom ~ 目录)=
(location~*目录·)>(location目录)>(location /)

rewrite和location

相同点
都能实现跳转
不同点
rewrite是在同一域名内更改获取资源的路径
location是一类路径做控制访问或反向代理,还可以proxy_pass到其他机器

rewrite会写在location里,执行顺序

执行server块里面的rewrite指令
执行location匹配
执行选定的location中rewite指令

安装Nginx服务

步骤
1.安装nginx源
2.安装nginx软件包
3.修改默认站点配置文件:/etc/nginx/conf.d/fefault.conf
4.启动nginx
注意
确定域名可以正常解析
做一下场景前,要删除上一个场景的配置
及时清除浏览器缓存

基于域名的跳转

公司旧域名www.Kgc.com,因业务需求有变更,需要使用新域名www.newkgc.com代替
不能废除旧域名
从旧域名跳转到新域名,且保持参数不变

基于客户端ip访问跳转

今天公司业务版本上线,所有ip访问任何内容都显示一个固定维护页面,只有公司ip访问正常

二级目录

三级目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值