位置: IT常识 - 正文

nginx location 正则匹配

编辑:rootadmin

nginx的location正则匹配是什么呢?不知道的小伙伴来看看小编今天的分享吧!
613/auto1686643643nginx location 正则匹配

Location根据类型分为两种:普通配置和正则匹配

一、 普通配置

普通location根据使用方法又分为两种,格式如下:

1. location / {

命令序列

}

解释:括号中定义的表示对当前路径及子路径下的所有对象有效。“优先级最低”

用户所有的请求都能被它匹配到。

例子:

location / {

root /web;

相应策略

}

这说明网页根目录在/web

访问的时候直接http://127.0.0.1或是域名就可以了

用户所有的请求都能被它匹配到

location /bbs {

root "/web";

相应策略

}

这就说明网页根目录是位于 /web/bbs

访问的时候直接http://127.0.0.1/bbs就可以了

当用户访问

http://127.0.0.1/bbs/

或是

http://127.0.0.1/bbs/子路径

的时候才能被上边的路径匹配到。

问题:当用户访问http://127.0.0.1/bbs/a.html时

这两段location 同时存在时如下,那么哪段配置会生效呢?

server {

listen 80;

server_name www.benet.com;

index index.html;

location / {

root /web;

}

location /bbs {

root /web;

}

结论就是,

当用户请求的(/bbs)url同时匹配到两段location时,

最大前缀生效(location /bbs生效)

如果没有这段(location /bbs) 第一段生效。

第一段相当于默认策略,因为location / 包含所有的请求,所有的请求都是以 ”/” 开始的

2. location = /路径 {

命令序列

}

解释:括号中定义的表示对当前路径有效,子路径不生效(精确匹配指定的路径不包括子路径)。“它的优先级最高。”

例子:

location = /prefix {

}

也就是用户访问www.benet.com/prefix能被上边的location匹配到,它只匹配"/prefix",

"/"下的子路不匹配。

用户访问www.benet.com/prefix/a 就不能被它匹配到

优先级最高:指的是一旦匹配到此location ,立即生效。其它location无论是否匹配到请求都不生效。

例子:

location /prefix/ {

root /;

}

location = /prefix/ {

return 500;

}

二、 正则匹配

正则匹配也分为两种:

1. location ~ URI {}

~匹配的文件是区分字符 大小写的

2.location ~* URI {} :

~*匹配的文件是不区分字符大小的

正则匹配是按照正则location编写的顺序生效的,一旦匹配成功即停止匹配到后续的location。

例子:

location ~ /bbs {

return 400;

}

location ~* /bbs {

return 500;

}

网页返回错误信息400

然后将两段配置调换一下位置

location ~* /bbs {

return 500;

}

location ~ /bbs {

return 400;

}

三、匹配顺序和生效顺序

匹配顺序和生效顺序是两个概念

当配置中出现多个locaton并且普通和正则都有,那么

1、匹配顺序是:

用户请求的URL

(1)先匹配普通location

普通location在匹配是按照编辑顺序匹配

(2)在匹配正则location

正则location在匹配时按照编辑顺序匹配

但是正则和普通locaiton不按照编辑顺序匹配

2、生效顺序

当普通和正则都存在的情况下,遵循以下原则

1.nginx开始按照编辑顺序依次匹配普通location

(1)如果匹配过程中匹配到了

"location =" :nginx会立即生效即停止后续的匹配

(2)如果没有"locaiton ="话,

如果匹配到"locatin ^~"。会停止后续的正则匹配

然后最大前缀locaiton生效

最后是location / 生效

(3) 如果以上两种location都不存在的话

nginx会匹配所有location后看后续有没有正则locaion

如果后续没有正则locaiton

然后最大前缀locaiton生效

最后是location / 生效

如果后续还有正则location

一旦匹配成功一条正则locaion,这条会生效,并且会停止后续的正则匹配,还会会覆盖前边的普通location结果

以上就是小编今天的分享了,希望可以帮助到大家。

本文链接地址:https://www.jiuchutong.com/zhishi/2769.html 转载请保留说明!

上一篇:php获取当前时间(php获取当前时间的函数)

下一篇:ppt布尔运算工具在哪里(ppt布尔运算工具在哪里2007)

  • 中型企业的标准是什么 划分标准
  • 单位卖二手车需要交什么税
  • 印花税购销合同减半征收政策
  • 个税申报逾期罚款怎么交
  • 刚成立的公司没有营业额怎么报税
  • 债务重组双方如何进行会计处理
  • 企业税收滞纳金需要纳税调整吗
  • 向投资者借款做在什么科目
  • 存货盘亏进项税额转出会计分录
  • 补记固定资产
  • 企业收取多年租金怎么算
  • 增值税发票是需要先对公转账吗
  • 7月1日后通用机打发票纳税人识别号怎么填?
  • 税费种认定功能在哪里
  • 哪些行为违反法律但不违反道德
  • 向职工出售住房
  • 母公司拨款给子公司的账务处理
  • 企业收到的贷款会计分录
  • 借壳上市是什么意思?融资
  • 投资性房地产公允价值模式账务处理
  • 员工两处取得工资收入
  • 公司账务审计费用取费标准
  • 其他应付款包括应付职工薪酬吗
  • 在建工程暂估转固定资产
  • 最新w10系统专业版
  • Linux中samba服务区怎么创建多个用户
  • 收到即征即退退的发票
  • 往来账乱如何处理
  • php生成二维码
  • win切换平板模式
  • 代理进口合同如何签署
  • ahqtb.exe是啥进程 ahqtb进程信息查询
  • php入门基础教程
  • 差额征税账务处理规定
  • 环境保护税的征税范围及计税依据
  • 业务招待费的账务处理金额
  • php计算时间
  • javascript手机上
  • PyTorch深度学习实战 | 基于ResNet的人脸关键点检测
  • 老板的财务
  • 公司主营业务和经营范围的区别
  • 物流公司可以作为货物收货人吗
  • 支付网银年服务费
  • mongodb怎么用
  • mongodb好用吗
  • SQLite3 命令行操作指南
  • 勾稽关系怎么算
  • 企业所得税的营业收入包括营业外收入吗
  • sql server2014使用
  • 公司向员工发放的慰问金怎么做账
  • 公司代缴个税怎么做账
  • 公司法人往公司账户打钱怎么能换回来
  • 行政单位收取现金的规定
  • 利润表主营业务收入怎么算
  • 制造费用转入生产成本摘要怎么写
  • 当月计提公积金下月发放怎么做分录
  • mysql 含有关键字
  • mysql实用教程
  • win10系统迅雷
  • ubuntul
  • 设置u盘为只读
  • 操作系统运行慢怎么解决
  • win7任务栏快捷启动如何设置
  • ubuntu20.04忘记root密码
  • win10d盘无法格式化,说另一个正在使用
  • win8注册表损坏进不了系统
  • batch批处理
  • perl 计算
  • JQuery和HTML5 Canvas实现弹幕效果
  • jquery的选择器有哪些举例说明
  • putty自动登录脚本
  • 没有实例化是什么意思
  • 基于python的聊天软件
  • javascript在客户端执行
  • 企业承包经营责任制
  • 上海《居住登记凭证》
  • 河北省发票查询真伪查询国税
  • 黄金消费税如何征收
  • 增值税普通发票可以抵扣吗
  • 交强险是什么样的照片
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设