重写跳转场景
-
<李> URL看起来更规范,合理,李>
<李>企业会将动态URL地址伪装成静态地址提供服务,李>
<李>网址换新域名后,让旧的访问跳转到新的域名上,李>
<李>服务端某些业务调整。李>
重写跳转实现
重写实用场景
Nginx跳转需求的实现方式
-
<李>使用重写进行匹配跳转李>
<李>使用如果匹配全局变量后跳转李>
<李>使用位置匹配再跳转李>
重写放在服务器{},{},{}位置段中
对域名或参数字符串
-
<李>使用如果全局变量匹配李>
<李>使用proxy_pass反向代理李>
常用的正则表达式元字符
字符 说明 ^ 匹配输入字符串的起始位置 $ 匹配输入字符串的结束位置 * 匹配前面的字符零次或多次 + 匹配前面的字符一次或多次 吗? 匹配前面的字符零次或一次 . 匹配除\ n之外的任何单个字符,使用诸如“[。\ n]“之类的模式,可匹配包括“\ n"在内的任意字符 \ d 匹配纯数字[0 - 9] {n} 重复多次 {n} 重复n次或更多次 [c] 匹配单个字符c 的[a -?] 匹配所有小写字母的任意一个 (a-zA-Z) ]匹配所有小写字母或所有大写字母的任意一个重写命令
语法:
<代码>重写& lt; regex>& lt; replacement>【国旗】; 正则跳转后的内容重写支持的国旗标记代码>
国旗标记说明
标记 说明 最后的 相当于Apache的[L]标记,表示完成重写 打破 本条规则匹配完成即终止,不再匹配后面的任何规则 重定向 302年返回临时重定向,浏览器地址会显示跳转后的URL地址,爬虫不会更新URL 永久 301年返回永久重定向,浏览器地址栏会显示跳转后的URL地址,爬虫更新URL最后和打破比较
最后的 打破 使用场景 一般写在服务器和中 一般使用在位置中 URL匹配 不终止重写后的url匹配 终止重写后的url匹配位置分类
<代码>位置=型{}[精准匹配) 位置型{}[一般匹配) 位置~型{}[正则匹配)代码>
正则匹配的常用表达式
标记 说明 ~ 执行一个正则匹配,区分大小写 ~ * 执行一个正则匹配,不区分大小写 ! ~ 执行一个正则匹配,区分大小写不匹配 ! ~ * 执行一个正则匹配,不区分大小写不匹配 ^ ~ 普通字符匹配;使用前缀匹配。如果匹配成功,则不再匹配其他的位置=普通字符精准匹配。也就是完全匹配 @ 定义一个命名的位置,使用在内部定向时位置优先级
<强>相同类型的表达式,字符创长的会优先匹配强>
<强>按优先级排列强>
-
<李>=类型李>
<李> ^ ~类型表达式李>
<李>正则表达式(~和~ *)类型李>
<李>常规字符串匹配类型,按前缀匹配李>
<李>通常匹配(/),如果没有其他匹配,任何请求都会匹配到李>
比较重写和位置/h4>
<强>相同点强>
都能实现跳转
<强>不同点强>
-
<李>改写是在同一域名内更改获取资源的路径李>
<李>位置是对一类路径做控制访问或方向代理,还可以proxy_pass到其他机器
<强>写会写在位置里执行顺序强> 李> <李>执行服务器块里面的重写指令李> <李>执行位置匹配李> <李>执行选定的位置中的重写指令李