当前位置: 首页 > news >正文

location

目录

匹配的目标

格式 

匹配符号:

优先级 

要表达不匹配条件,则用 if 实现

例子:根目录的匹配最弱

例子:区分大小写 和 不区分大小写

例子:以根开头  和 不区分大小写

例子:等号  


匹配的目标

nginx location匹配的是变量 $uri ,就是域名后参数前的部分。

格式 

location   匹配符   路径   {  }

匹配符号:

=   精确匹配

~   正则匹配,区分大小写

~*  正则匹配,不区分大小写

^~  匹配指定字符或字符串开头的

/     根类的匹配。比如 $host/lwj/abc/12.html  ,匹配判断范围的仅限在域名后紧跟着的那段/lwj。

优先级 

===>  ===>   ===>  ===>  ===>  ===>

级高      =     ^~    ~*   ~     /       级低

 

注意:!~    location不支持这种写法

要表达不匹配条件,则用 if 实现

if (  $uri  !~  "XXX" )   {  }

/abc 的匹配必须是紧跟域名后开始的才算,因为有 / 无其他匹配符时代表从根目录开始

例子:根目录的匹配最弱

 /abc  <   ~* abc

$host/abc/123.html  中虽然看上去/abc更加精准,但是无奈 / 类的优先级很低。

例子:区分大小写 和 不区分大小写

$host/Abc/123.html   时 ,~ Abc   =   ~* abc       同样的字符时,谁写在前面谁赢

这里虽然curl的是 Abc 更符合 ~Abc ,但因为也符合 ~*abc  且 ~* 写在前面,则依然是~*赢。

例子:以根开头  和 不区分大小写

必须 ^ 还要有 / 的情况才能略胜一筹。$host/abc/123.html  下,  ^~ /abc   >   ~*  abc   

没有 / 时输,$host/abc/123.html 下,^~  abc   <   ~*  abc 

不是紧跟域名的那段时输,$host/xyz/abc/123.html 下,^~  /abc   <   ~*  abc 

 

例子:等号  

等号 是从根开始算的,在没有$uri 完全匹配前,不是 ^~ /lwj 的对手。

如果匹配目标不在 / 根目录下 ,也不是 ~* 的对手。

只有在 $uri 完全精确匹配时才能生效(部分匹配无效),很苛刻,后面的参数$args部分倒是不影响。

只要$uri精准匹配上了,就是最大的,即使后面还有参数也无所谓。

 

零散例子:

例子:

location = "/lwj.txt" { }
则
www.baidu.com/lwj.txt 匹配
www.baidu.com/xyz/lwj.txt  不匹配。 因 = 需要$uri部分完全匹配,而不是部分匹配

 

例子:

location ^~ "/lwj/" { }
则
www.baidu.com/lwj/1.txt 匹配
www.baidu.com/xyz/lwj/1.txt  不匹配。 需要是$uri以匹配项开头 ,而不是匹配其中一段目录开头。

例子:

location ~ "lwj" { }
则
www.baidu.com/lwj/abc/1.txt  匹配。
www.baidu.com/xyz/lwj/abc/1.txt  匹配。
www.baidu.com/abc/lwj.txt 匹配.
包含就匹配

 

例子:

location "/lwj/"  { }
则
www.baidu.com/lwj/1.txt  匹配。
www.baidu.com/xyz/lwj/1.txt  不匹配。 必须根目录开头。

http://www.lryc.cn/news/21087.html

相关文章:

  • 简述RBAC模型
  • 倒计时2天:中国工程院院士谭建荣等嘉宾确认出席,“警务+”时代来临...
  • Python蓝桥杯训练:基本数据结构 [哈希表]
  • MacOS 配置 Fvm环境
  • Python小白入门- 01( 第一章,第1节) 介绍 Python 编程语言
  • 高并发系统设计之缓存
  • 【N32WB03x SDK使用指南】
  • pytest测试框架——pytest.ini用法
  • KAFKA安装与配置(带Zookeeper)2023版
  • 深入浅出解析ChatGPT引领的科技浪潮【AI行研商业价值分析】
  • .net 批量导出文件,以ZIP压缩方式导出
  • 数据分析:某电商优惠卷数据分析
  • 性能测试流程
  • zookeeper集群的搭建,菜鸟升级大神必看
  • C语言之习题练习集
  • Buuctf [ACTF新生赛2020]Universe_final_answer 题解
  • 【Linux】环境变量
  • 单一职责原则
  • golangの并发编程(GMP模型)
  • MacBook Pro错误zsh: command not found: brew解决方法
  • spring中BeanFactory 和ApplicationContext
  • HC32L17x的LL驱动库之dma
  • SSM项目 替换为 SpringBoot
  • RL笔记:动态规划(2): 策略迭代
  • 2023软件测试金三银四常见的软件测试面试题-【测试理论篇】
  • 蓝桥训练第二周
  • 详讲函数知识
  • gin 框架初始教程文档
  • Maven的下载和安装【详细】
  • [数据结构]:04-循环队列(数组)(C语言实现)