位置: 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)

  • 小规模纳税人本月应交增值税
  • 小规模纳税人宾馆房屋租赁税率
  • 增值税普通发票怎么开
  • 房屋租赁如何开增值税专用发票
  • 个人能否申请延迟退休
  • 国税登记号和地税登记号是什么
  • 注册会计师税法真题
  • 企业所得税季初不能是0
  • 税控系统维护费怎么做会计分录
  • 为什么收不到发票短信?
  • 城市维护建设税减免税优惠政策
  • 或有负债怎么入账
  • 营改增 旅游服务
  • 前期认证未抵扣
  • 行政事业单位专用材料费列支范围
  • 一般企业和行政事业单位的资产负债表是否一样
  • 房租收入应该计入什么
  • 工程发票备注怎么写
  • 增值税专用发票怎么开
  • 纳税信用b
  • 主营业务收入和产值
  • 汽车厂家金融贴息 是贴利息的还是贴车价
  • 金税盘发票显示不出确认
  • 社保刚办理可以用吗
  • 机关党建经费提取比例
  • 收到汇票怎么承兑
  • linux怎么挂起
  • 已计提月份的公式
  • 输入法自定义按键位置
  • linux中rm命令详解
  • Win10 Build 21354 太阳谷ISO镜像版体验报告 含下载地址
  • 新成立的公司没有社保如何投标
  • 结算备付金的账户是什么
  • win11系统打不出顿号
  • PHP:stream_get_meta_data()的用法_Stream函数
  • 营改增后固定资产报废处置收入计税
  • 分公司与总公司不在一个城市如何起诉
  • 如何修改php网页内容
  • php 取字符串 前几位
  • 科目余额表和资产负债表的金额不一致的原因
  • 处置固定资产的增值税怎么处理
  • 基于深度学习的图像超分辨率——综述
  • 爬虫失败的原因
  • 公司购买承兑
  • 床垫可以开专票抵扣吗
  • dedecms转其他cms
  • mybatis入门菜鸟教程
  • 非营利组织免征企业所得税的通知
  • 一次性加速折旧考虑残值吗
  • 确认收入的时点包括
  • 应收账款贷方余额年末怎么处理
  • 增值税专用发票怎么开
  • 应税服务零税率是什么
  • 材料估价入库发票收到如何记账
  • 上年度固定资产费用化了,财报怎么算
  • 暂估入库已结转成本,下月票回来,还用红冲吗
  • 进项税额转出如何计算增值税
  • 购买不良债权如何追偿
  • 报销如果没有发票怎么补救
  • 货物发出退货
  • 补记式余额调节法怎么写项目
  • 工业企业外购材料支付的采购费用应计入什么账户
  • win10 rs5
  • centos查看硬盘信息的命令
  • windows附件在哪里打开
  • 搭建技巧和方法示意图
  • linux如何学
  • Win10 Mobile RS2预览版14926升级错误代码800703ed的解决方法
  • XP IIS5.1 + PHP 5.2.1 + MySQL 5.0.37 + Zend 3.2.6 + phpMyAdmin-2.10.0.2环境配置
  • lhotkey.exe
  • linux消息队列阻塞
  • Extjs4.0 ComboBox如何实现三级联动
  • 如何用python进行数据处理
  • apache2使用
  • unity做安卓app
  • div.remove
  • javascript中的原型和原型链
  • 云阅卷查询成绩登录入口
  • 数字证书使用方法
  • 北京密云十里堡镇河漕社区卫生服务站
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设