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

  • 增值税专用发票的税率是多少啊
  • 总账一级科目有哪些
  • 提供劳务应收未收的款项
  • 采购人员的费用
  • 零税率和免税一样吗?哪一个更优惠?
  • 承兑汇票大回头票是什么意思
  • 什么经营范围可以开电费发票
  • 长期待摊费用摊销年限规定
  • 应交房产税通过应交税费核算吗
  • 外出经营许可证办理流程
  • 材料成本会计的主要内容
  • 研发支出费用化支出每个月都要结转吗
  • 管理费用对所得收入影响
  • 关联企业如何取消
  • 劳务发票未收到做账
  • 预付费用计入当期费用吗
  • 上海航交所官网
  • 有限合伙企业对外转让财产份额
  • 地税印花税税率是多少
  • 基本户发工资要交社保吗
  • 核定征收的企业需要汇算清缴吗
  • 长期待摊费用账户按用途和结构分类应属于
  • 收的的挂靠费一般是几个点
  • 外汇汇兑损益怎么做账
  • 使窗口最小化的快捷键
  • carrier profile
  • 电脑蓝屏代码0x0000003B
  • 在windows7中用来存放硬盘中被删除的文件或文件夹的是
  • 车船税的会计分录怎么写
  • ajax调用php函数
  • linux中的
  • 抵扣后增值税税率
  • 全年一次性奖金税收计算器
  • 如何把电脑上锁屏密码
  • 汇付的注意事项有哪些内容
  • kavsvc.exe - kavsvc是什么进程 有什么作用
  • vue public assets
  • 编写二叉树
  • laravel dump
  • 暂估增值税可以抵扣吗
  • php中实现文件上传需要用到哪几个函数
  • 网络分割算法
  • vue 路由
  • php中字符串的连接运算符是( )
  • 外经证还有几天到期延期需要的资料
  • 增值税发票丢失罚款多少
  • 如何计算公司需增加的营运资金
  • 私募基金成立的规模条件
  • 政府补贴收入确认政策
  • 不接受商业承兑会怎么样
  • 汇算清缴补税的情况有哪些
  • 捐款 企业
  • 0税率可以抵扣进项税吗
  • 计提和结转的例子
  • 资产负债表该怎么填写
  • 为支持防疫工作捐款
  • 固定资产清理损益表怎么填
  • 收到货款未开票怎么入账
  • 预付款被退回分录
  • 固定资产损失税前扣除备查资料有哪些
  • 原材料属于固定资本还是流动资本
  • 总公司调拨子公司怎么办
  • 研发费加计扣除申报表怎么填
  • 会计利润是利润加暂时性差异吗为什么
  • Win10系统中怎么将文件夹进行压缩
  • Ubuntu 14.04/14.10如何安装记账软件HomeBank?
  • vcspawn.exe
  • linux cat 命令
  • 卸载软件后整个盘都清空了
  • win10右下角弹出全屏截图
  • Windows(win7/win8/xp/2003)进入安全模式方法详细汇总
  • win7安装远程桌面组件
  • Win10应用程序无法正常启动0xc000007b
  • 邮箱应用程序
  • perl -i -pe
  • nodequery
  • python多线程怎么写
  • javascript怎么学
  • 编写js代码要注意什么
  • 安卓圆角矩形图标
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设