吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 482|回复: 5
收起左侧

[求助] 问一个关于nginx location 匹配的问题

[复制链接]
AlexBruce 发表于 2024-5-12 14:28
本帖最后由 AlexBruce 于 2024-5-12 14:29 编辑

看起来是一个很简单的问题,但是困扰了我半天,希望大佬解答一下,感谢!

比如我的网站是 test.com,针对同一个请求 test.com,下面这个规则,可以匹配上:

location / {
        root /usr/share/nginx/html;
        index  index.html index.htm;
}


而下面这个精确匹配,就匹配不上:
location =/ {
        root /usr/share/nginx/html;
        index  index.html index.htm;
}


这是为什么呢?


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zaoanz 发表于 2024-5-12 14:48
好像第二规则 必须以 /   结尾才能匹配上
知心 发表于 2024-5-12 14:58
精确匹配:使用=进行精确匹配,例如location = /login,会完全匹配/login路径,并立即结束匹配过程。
kittylang 发表于 2024-5-12 15:41
3楼说得对,/可以匹配任何请求(因为所有请求都是/开头

=/仅仅匹配 test.com/ (且立即结束,不会再继续后面的匹配),其他的如 test.com/index,test.com/index.html 通通不行
shug11 发表于 2024-5-12 18:06
            location = /index.html {
                return 200 "hello";
        }
            location = / {
                root /usr/share/nginx/html;
                index index.html;
            }
会匹配location = / {}, 但是匹配后会重新查找/index.html, 最后返回hello
dcahptl 发表于 2024-5-12 21:21
本帖最后由 dcahptl 于 2024-5-12 21:52 编辑

这个是匹配的问题
location /    ,这样写匹配的前缀匹配,  你输入test.com/就可以匹配到你下面内容,例如: test.com/      test.com/abc    test.com/aaa   会匹配到以  /  开头的所有请求。
location = /   ,这样写是精确匹配,输入   test.com/    ,只会匹配test.com/,不会匹配其他。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-15 07:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表