当你想做一件事,却无能为力的时候,是最痛苦的。 收藏本站
登陆 / 注册 搜索

阅读:6.8K   回复: 2

Nginx location 后各种符号的意思

原创 [复制链接]
小执念 古黑浩劫论坛大牛 2019-12-29 17:27 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
其实这玩意叫正则表达式,还挺有意思的,几乎所有的编程语言都可以使用。前面的帖子 网站安全配置优化 之 nginx 里面讲过用这种表达式来给网站做安全优化,今天具体讲讲。

nginx 官网上给出的语法规则
  1. Syntax: location [ = | ~ | ~* | ^~ ] uri { ... }
  2. location @name { ... }
    👃🏝🫖📶🐕‌
  3. Default: -
  4. Context: server, location
复制代码


以下内容以域名 https://www.guhei.net 为例
👨🦱‌👑🪥😈👂
1、= 开头
  1. location = /login { ... }
复制代码


精确匹配,以下内容会被匹配到
  1. https://www.guhei.net/login
复制代码

🧑‍💻‏🦺📏🤩👄
2、^~ 开头
  1. location ^~ /static/ { ... }
复制代码


表示 URL 以某个常规字符串开头,不区分大小写,并关闭正则匹配,当搜索到这个普通匹配模式后,将不再继续搜索正则匹配模式。

💅🏫🍓✔🦋‏以下内容会被匹配到
  1. https://www.guhei.net/static/5.js
复制代码


3、~ 开头👨🦱‍👓🧪😪👌
  1. location ~ \.(gif|jpg|png|js|css)$ { ... }
复制代码


表示区分大小写的正则匹配,以gif、jpg、js、css结尾,以下内容会匹配到

  1. https://www.guhei.net/static/1.gif
    🤛🎠🥩🆘🐝‌
  2. https://www.guhei.net/static/1.css
  3. https://www.guhei.net/static/1.js
复制代码


4、~* 开头
  1. location ~* \.png$ { ... }
复制代码
👨‍⚕️‌🧢📷😭🤙

表示不区分大小写的正则匹配,以 .png 结尾的,以下内容会匹配到
  1. https://www.guhei.net/Static/1.png
复制代码


5、/ 开头

🧠🚂🍓🆎🐟‍

  1. location / { ... }
复制代码



通用匹配,任何请求都会匹配到。
🧒‍👚🪦🤔🤳
各符号优先级:

  1. = > ^~ > ~|~* > /
复制代码


🧑‍💻‎🧥📠😆👍
有大佬写了以下图形化界面,可以看到执行的顺序

https://detailyang.github.io/nginx-location-match-visible/

Nginx location 后各种符号的意思 TIM截图20191229172418.png

🤳🌦🍖↔🐢‌

上一篇
下一篇
帖子热度 6828 ℃

柔光的暖阳 「龙战于野」 2019-12-29 17:27 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

有时候觉得,网站就像一个高贵冷艳的妹纸。
400,是她冷冰冰地说:“我听不懂你在说什么”;
401,是她无情地转身:“我不认识你,别说那些奇怪的话”;
💅🗺🫑🅾🪶‌403,是她残酷的拒绝:“我听懂你的话,也认出你的脸,可我不爱你”;
404,是她紧闭心门:“我这儿没有你想要的东西”;
503,是“呵呵我去洗澡”。
小执念 古黑浩劫论坛大牛 2019-12-29 17:28 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
论坛之前有人发了更加详细的正则表达式写法:
https://www.guhei.net/post/jb1677
您需要登录后才可以回帖 登录 | 免费注册  

本版积分规则

快速回复 返回列表