热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Nginx通配符配置详解与应用实例

本文详细解析了Nginx中通配符配置的使用方法,并通过具体实例展示了其在路径匹配中的应用。文章介绍了如何利用精确匹配符号(如`^~`)来指定URI以特定字符串开头,特别指出Nginx不会对URL进行编码处理,因此像`static20%aa`这样的请求能够被`^~`规则有效匹配。此外,还探讨了其他常见的通配符及其在实际场景中的应用技巧。


1、Nginx路径匹配符号
= 表示精确匹配
^~ 表示uri以某个常规字符串开头,大多情况下用来匹配url路径,nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
~ 正则匹配(区分大小写)
~* 正则匹配(不区分大小写)
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则
/ 任何请求都会匹配

2、符号的优先级
首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。

3、例子,有如下匹配规则:

location = / {
#规则A
}
location = /login {
#规则B
}
location ^~ /static/ {
#规则C
}
location ~ \.(gif|jpg|png|js|css)$ {
#规则D
}
location ~* \.png$ {
#规则E
}
location !~ \.xhtml$ {
#规则F
}
location !~* \.xhtml$ {
#规则G
}
location / {
#规则H
}

4、Rewirte配置

  rewrite指令的最后一项参数为flag标记,flag标记有一下四种,说明一下:

  1> last-标记在本条rewrite规则执行完毕后,会对其所在server{......}标签重新发起请求。使用last实现URI重写后,浏览器地址栏不变。使用alias指令必须用last标记。

  2> break-标记在本条规则匹配完成后,终止匹配,不再匹配后面的规则。使用break实现URI重写后,浏览器地址栏不变。使用proxy_pass指令时,需要使用break标记。

  3> redirect-返回302临时重定向,浏览器地址会显示跳转后的URL地址。

  4> permanent-返回301永久重定向,浏览器地址会显示跳转后的URL地址。

 


推荐阅读
author-avatar
多米音乐_34024963
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有