重写跳转原理和实现方法

  

本文将为大家详细介绍重写的跳转原理和实现方法,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,我们先来看看:

重写跳转场景

 <代码> 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 {
  (配置)
  }

重写跳转原理和实现方法