1 location 的匹配符

1.1 等于匹配符:=

等于匹配符就是等号,特点可以概括为两点:

  1. 精确匹配
  2. 不支持正则表达式

1.2 空匹配符

空匹配符的特点是:

  1. 匹配以指定模式开始的 URI
  2. 不支持正则表达式

1.3 正则匹配符:~

正则匹配符是可以使用正则表达式的匹配符。不过这里要强调的是,一般来说~是指:

区分大小写的正则匹配

~*表示:

不区分大小写的正则匹配

但是对于一些对大小写不敏感的操作系统,这两者没有区别。另外一个就是^~,其表示以指定模式开始的正则匹配。

1.4 内部访问符:@

一般用于错误页面等,这个暂不讨论。

2 匹配符优先级

  1. =
  2. 空匹配符,满足精确匹配时
  3. ^~
  4. ~~*
  5. 空匹配符,满足以指定模式开始时的匹配时

这样说比较抽象,我们来看例子吧。

2.1 等于匹配符与精确匹配时的空匹配符

看下面的例子(用到我们此前一起完成的Hello World模块):

location /poechant {
hello_world no1;
} location = /poechant {
hello_world no2;
}

如果我们的请求是http://my.domian/poechant,则我们发现两个location都与请求的 URI 匹配,这时根据我们的优先级顺序,第一个是精确匹配时的空匹配符,第二个是等于匹配符,所以第二个的优先级高,也就是应该输出:

hello_world, no2

同时也说明 Nginx 的 locatoin 不是按照配置文件中的书写顺序来匹配的。

2.2 精确匹配时的空匹配符与正则匹配的^~

下面这个例子中,两者开始都精确匹配了,连这个正则匹配都是精确匹配。

location ^~ ^/poechant$ {
hello_world no1;
} location /poechant {
hello_world no2;
}

匹配哪一个?你测试一下,会得到:

hello_world, no2

与我们上面说的优先级顺序相吻合。

2.3 其他匹配优先级比较的实例

-

最新文章

  1. Android Studio的SVN Performing VCS Refresh/Commit 长时间不结束
  2. linux 下载百度盘,迅雷离线文件,解压乱码文件的方法。
  3. Yii里文件上传的操作方法(图片修改,在详情上展示,批量上传待续...)
  4. 第七周技术博客发表 web网页开发
  5. ?this&函数自身的引用
  6. jsp防盗链代码
  7. 《Algorithms 4th Edition》读书笔记——3.1 符号表(Elementary Symbol Tables)-Ⅳ
  8. HTML——CSS样式表&布局页面
  9. Android学习——百度地图开发定位与显示Demo
  10. SQL优化及注意事项
  11. 小白的Python之路 day2 列表、元组操作
  12. TF-卷积函数 tf.nn.conv2d 介绍
  13. Python+Appium 获取 toast 文本值方法的封装
  14. 第二课android中activity启动模式
  15. Go语言入门: Chapter1
  16. Python文本数据互相转换(pandas and win32com)
  17. 31.C++-虚函数之构造函数与析构函数分析
  18. Python Revisited Day 03 (组合数据类型)
  19. 强化学习-时序差分算法(TD)和SARAS法
  20. 《深入理解java虚拟机》第六章 类文件结构

热门文章

  1. Cockpit 服务化管理工具
  2. 笔记:webpack 打包参数 mode development
  3. Iterations --codility
  4. bzoj 2406 矩阵——有源汇上下界可行流
  5. 语义分割【semantic-segmentation】资料备忘
  6. windows + python3.5.2 + anaconda3 + dlib 安装配置
  7. offset()和position()
  8. 怎样优化CPU
  9. Oracle数据库学习笔记(一)
  10. 如何用xMind打开.mmap文件