码迷,mamicode.com
首页 > 其他好文 > 详细

Nginx 之 location 指令匹配规则

时间:2018-04-30 23:55:09      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:优先级   命名   images   执行   正则   lock   try_files   其他   一个   

location 指令的匹配命令如下:

  • ~,执行一个区分大小写的正则匹配。
  • ~*,执行一个不区分大小写的正则匹配。
  • ^~,普通字符匹配,通常用于匹配目录。
  • =,普通字符精确匹配。
  • @,定义一个命名的 location,用在内部定向中。

    例如 error_page 或 try_files 中。

location 上下文的优先级与它在 nginx.conf 文件中的位置无关,只与正则表达式的类型有关。对于相同类型的表达式,会优先匹配字符串长的 location。

  • 第一优先级,= 类型表达式。一旦匹配成功,不再查找其他匹配项。
  • 第二优先级,^~ 类型表达式。一旦匹配成功,不再查找其他匹配项。
  • 第三优先级,~/~* 类型表达式。若有多个 location 的正则匹配,使用匹配最长的那个。
  • 第四优先级,常规字符串类型,按前缀匹配。

配置示例

location = / {
    ...
}

仅匹配来自 / 的请求。

location / {
    ...
}

匹配所有以 / 开头的请求。

若有更长的同类型表达式,则选择更长的表达式。

若有正则表达式可以匹配,则优先匹配正则表达式。

location ^~ /images/ {
    ...
}

匹配所有以 /images/ 开头的请求,若匹配成功,则停止匹配查找。

location ~* \.(gif|jpg|jpeg)$ {
    ...
}

匹配所有以 gif、jpg 和 jpeg 结尾的请求,若匹配成功,则停止匹配查找。

若有以 /images/ 开头的请求,则会使用前一个配置。

Nginx 之 location 指令匹配规则

标签:优先级   命名   images   执行   正则   lock   try_files   其他   一个   

原文地址:https://www.cnblogs.com/reghao/p/8975246.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!