以某个字符路径开头的匹配模式与默认的匹配模式有啥不同?

以某个字符路径开头的匹配模式与默认的匹配模式有啥不同?

你好 老师,

我想问下   ^~ 这种匹配模式是说 一定要以某个字符路径开头,那这和默认的  location 这种匹配有啥不同?

比如   

location ^~ /imooc/abc {

 root /home

}


location  /imooc/abc {

 root /home

}

以上两种不都是说我在请求的时候,通过  http://xxxxxx/imooc/abc    这种方式开头吗?



正在回答

登陆购买课程后可参与讨论,去登陆

1回答

location /aaa
匹配所有以 /aaa/ 开头的请求。但是如果有更长的同类型的表达式,则选择更长的表达式

location ^~ /bbb/ {
匹配所有以 /bbb/ 开头的表达式,如果匹配成功,则停止匹配查找。所以哪怕有符合的正则表达式location,也不会被使用了

这两者用的比较多的以/aaa居多,他也是默认的,相当于switch中的default块。

所以你在使用的时候,单独来看是没区别的哈

  • 慕仰4308463 提问者 #1
    谢谢老师回复 ,帮再给解释下 :如果有更长的同类型的表达式,则选择更长的表达式,这是什么意思 ? 我理解是 如果有两个匹配模式: location /aaa,location /aaa/b 如果我在请求 http://xxxx/aaa/b/c.jpg 的时候,会先使用 后面的这种匹配模式吗?
    2019-12-15 11:35:46
  • 以长的优先。你可以去试试噢,哈哈
    2019-12-15 12:55:48
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师