Nginx的location匹配优先级

本文介绍了Nginx中location的语法规则,详细阐述了location匹配的优先级,并通过多个匹配案例演示了如何配置实现精确资源路径匹配、目录访问以及图片和不明确路径的资源访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、location的语法规则
location [=|^~|~|~*] /url/ …

符号含义
=表示精确匹配,输入的url名必须相同
^~表示匹配以某个字符串开头的url路径
~表示匹配区分大小写的url字符正则表达式
~*表示匹配不区分字符串大小写的url正则表达式
/filename表示匹配此url路径下的的文件资源
/通用匹配,任何的请求都会被匹配到

2、location匹配的优先级

  (=) >(^~) > (~) >(~*) > (/filename) >(/)

3、匹配案例演示:

        location = /aaa/ {
            root  /nginx/web/;
            index  index.html;     //这是精确匹配,只能是输入/aaa/才会被匹配到的资源;
        }

        location ^~ /bbb/ {
           root /nginx/web;
           index  index.html;    //这是以/bbb/资源开头的资源,访问的路径为/nginx/web/bbb/index.html;
        }

        location ~ \.(jpg|gif|png)$ {
           root /nginx/web/image;   //这是区分大小写的图片资源路径;
        }

        location ~* \.jpg$ {
           root /nginx/web;     //这是不区分字符大小写的图片资源路径;
        }

        location /nginx/web {
           root /nginx/web/;     //这是指定目录路径匹配,访问/nginx/web资源都是访问该目录下的index.html资源;
           index index.html;
        }

        location / {
           root /nginx/web;     //这是通用匹配,会访问/nginx/web/index2.html资源文件;
           index index2.html;
        }

首先我们做精确资源路径匹配,查看是否能访问到aaa目录的资源文件(注意:字符串一定要一样)

在这里插入图片描述

再尝试对bbb目录的访问:
在这里插入图片描述

然后对图片做访问,我输出的是大写的字符路径,所以直接匹配到了/nginx/web/image目录里面的资源在这里插入图片描述

然后做指明路径的访问和不指明路径的资源访问
在这里插入图片描述

然后不指明资源位置路径,看看是否会访问到/nginx/web/index2.html
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值