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