目录
一、Nginx Rewrite
Rewrite主要的功能是实现URL重写,Nginx 的 Rewrite 规则采用 PCRE Perl 兼容正则表达式的语法进行规则匹配,如相使用 Nginx 的 Rewrite 功能,在编译 Nginx 前要编译安装 PCRE 库。Rewrite主要实现url地址重写,以及重定向,就是把传入web的请求重定向到其他url的过程。
rewrite和location的功能有点相像,都能实现跳转,主要区别在于rewrite常用于同一域名内更改获取资源的路径,而location是对一类路径做控制访问和反向代理,可以proxy_pass到其他服务器。
Nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。
rewrite只能放在server{},location{},if{}中,
并且只能对域名后边的除去传递的参数外的字符串起作用。
二、Rewrite的功能
1.Rewrite 跳转场景
2.Rewrite 跳转实现
3.Rewrite 实际场景
4.Rewrite 正则表达式
5.Rewrite 命令/语法格式
6.location 分类
7.location 优先级
8.Rewrite和location比较
9.根据以上了解,小案例来操作实现我们在企业跳转案例
三、Rewrite 跳转场景
1.URL看起来更规范、合理
2.企业会将动态URL地址伪装成静态地址提供服务
3.网址换成新域名后,让旧的访问跳转到新的域名上
4.服务端某些业务调整
URL:就是一个具体路径/位置,指的就是一个拥有相同类型/特性的对象集合
URN:用名称定位
四、Nginx跳转需要的实现方式
使用Rewrite进行匹配跳转——>防盗链
使用if匹配全局变量后跳转——>centos系统的全局变量不是Nginx服务本身全局变量
使用location匹配再跳转——>匹配的访问URL路径,location可以匹配本地重写以及跨服务器跳转
Rewrite放在server{} , if{} , location{ } 段中
location只对域名后边的除去传递参数外的字符串起作用
对域名或参数字符串
使用if全局变量匹配
使用proxy_pass反向代理
五、Rewrite命令/语法
Rewrite <regex> <replacement> [flag];
正则 跳转后的内容 Rewrite支持flag标记
flag标记说明
标记
last 相当于Apache的[L]标记,表示完成Rewrite,在本条规则完成后,继续向下匹配新 的location URL规则,一般在server和if当中
break 本条规则匹配完成即终止,不再匹配后面规则
redirect 返回302临时重定向,浏览器地址会显示跳转后的URL地址,爬虫不会更新URL
permanent 返回301永久重定向,浏览器地址会显示跳转后URL地址,爬虫更新URL
break和last类似,但是不会重新发起一次处理过程,而是直接放回处理结果
redirect 该标记表示当前规则匹配成功后立即进行重定向操作
permanent 该标记和redirect类似,但是永久重定向
set 标记表示当前规则匹配成功设置一个变量,并把变量传入下一条规则