本文将为大家详细介绍重写的跳转原理和实现方法,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,我们先来看看:
重写跳转场景
<代码> URL看起来更规范,合理 企业会将动态URL地址伪装成静态地址提供服务 网址换新域名后,让旧的访问跳转到新的域名上 服务端某些业务调整代码>
重写跳转实现
重写实用场景
<李> <强> Nginx跳转需求的实现方式强>
引用>
使用重写进行匹配跳转
使用如果匹配全局变量后跳转
使用位置匹配再跳转李> <李> <强>重写放在服务器{},{},{}位置段中强> 李> <李> <强>对域名或参数字符串强>
使用如果全局变量匹配
使用proxy_pass反向代理李>常用的正则表达式元字符
字符说明^匹配输入字符串的起始位置美元匹配输入字符串的结束位置*匹配前面的字符零次或多次+匹配前面的字符一次或多次吗?匹配前面的字符零次或一次。匹配除\ n之外的任何单个字符,使用诸如“[。\ n]“之类的模式,可匹配包括“\ n"在内的任意字符\ d匹配纯数字,[0 - 9]{n}重复多次{n}重复n次或更多次[c]匹配单个字符c [a - z]匹配所有小写字母的任意一个[a-zA-Z]匹配所有小写字母或所有大写字母的任意一个重写命令
<代码>语法: 重写& lt; regex>,,,,,,& lt; replacement>,,,,,,【国旗】; ,,,,,,正则,,,,,,,,,跳转后的内容,,,,,,,代码重写支持的国旗标记><强>国旗标记说明:强>
标记说明最后相当于Apache的[L]标记,表示完成rewritebreak本条规则匹配完成即终止,不再匹配后面的任何规则重定向返回302临时重定向,浏览器地址会显示跳转后的URL地址,爬虫不会更新urlpermanent返回301年永久重定向,浏览器地址栏会显示跳转后的URL地址,爬虫更新URL<强>最后和打破比较:强>
lastbreak使用场景一般写在服务器和如果中一般使用在位置中URL匹配不终止重写后的URL匹配终止重写后的URL匹配位置分类
<代码>分类: ,,位置=型{}[精准匹配) ,,位置型{}[一般匹配) ,,位置~型{}[正则匹配)代码><强>正则匹配的常用表达式:强>
标记说明~执行一个正则匹配,区分大小写~ *执行一个正则匹配,不区分大小写! ~执行一个正则匹配,区分大小写不匹配! ~ *执行一个正则匹配,不区分大小写不匹配^ ~普通字符匹配;使用前缀匹配。如果匹配成功,则不再匹配其他位置=普通字符精准匹配。也就是完全匹配@定义一个命名的位置,使用在内部定向时位置优先级
<代码> * *相同类型的表达式,字符创长的会优先匹配* * * *按优先级排列* * ,,=类型 ,,^ ~类型表达式 ,,正则表达式(~和~ *)类型 ,,常规字符串匹配类型,按前缀匹配 ,,通常匹配(/),如果没有其他匹配,任何请求都会匹配到代码>比较重写和位置
<代码> * *相同点* * ,,,,都能实现跳转 * *不同点* * ,,,,改写是在同一域名内更改获取资源的路径 ,,,,位置是对一类路径做控制访问或方向代理,还可以proxy_pass到其他机器 * *写会写在位置里执行顺序* * ,,,服务器,执行块里面的重写指令 ,,,,执行位置匹配 ,,,中,执行选定的位置的重写指令代码>位置优先级的示例
<代码> # #精确匹配/,主机名后面不能带任何字符串 位置=/{ (配置),, } # #所有的地址都以/开的头,这条规则将匹配到所有请求,但正则和最长字符串会优先匹配 位置,/{ (配置B),, } # #匹配任何以/文件/开头的地址,当后面正则表达式没有匹配到时,才起作用 位置/文件/{ (配置C) } # #匹配任何以/文件/abc开头的地址,当后面正则表达式没有匹配到时,才会起作用 位置~/文件/abc { [D]配置 } # #以/图片/开头的地址,匹配符合后,停止往下匹配 位置^ ~/图片/{ (配置E) } # #匹配所有以gif结尾的请求,/图片/下的图片会被[配置E]处理,因为^ ~的优先级更高 ~ * \位置。(gif | jpg | jpeg) $ { (配置F) } # #最长字符匹配到/图片/abc,优先级最低 位置/图片/美国广播公司(abc) { (配置G) } # #以/图片/abc开头的,优先级次之 位置~/图片/abc { (配置H) } # #如果和正则~/图像/abc/1. html相比,正则优先级更高 位置/图片/abc/1。html { (配置) }重写跳转原理和实现方法