博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx 正则匹配
阅读量:5151 次
发布时间:2019-06-13

本文共 2680 字,大约阅读时间需要 8 分钟。

目录

Nginx 正则表达式之匹配操作符

~     区分大小写(大小写敏感)匹配成功 ~*   不区分大小写匹配成功 !~    区分大小写匹配失败 !~*  不区分大小写匹配失败^      以什么开头的匹配$      以什么结尾的匹配*      代表任意字符

过期缓存

expires      30d;

表示过期时间30天

针对浏览器

location / {    if ($http_user_agent ~* chrome) {        return 503;    }}

禁止访问Chrome浏览器。

422101-20181211141327811-1481371624.png

针对文件类型

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${    expires      30d;}

针对文件夹

location /test/ {    return 403;}

422101-20181211142201029-1651222202.png

判断文件,文件夹

-f和!-f用来判断是否存在文件-d和!-d用来判断是否存在目录-e和!-e用来判断是否存在文件或目录-x和!-x用来判断文件是否可执行

设置某些类型文件的浏览器缓存时间

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${    expires 30d;}location ~ .*\.(js|css)${    expires 1h;}

匹配到所有uri

location / {    }

last一般写在server和if中,而break一般使用在location中。

redirect : 返回302临时重定向,地址栏会显示跳转后的地址。

全局变量

$args                                         请求中的参数,如www.abc.com/test/hello?a=1&b=2的$args就是a=1&b=2$document_root                Nginx虚拟主机配置文件中的root参数对应的值$document_uri             当前请求中不包含指令的URI,如www.abc.com/test/hello?a=1&b=2的document_uri就是/test/hello,不包含后面的参数$host                     主机头,也就是域名$http_user_agent                      客户端的详细信息,也就是浏览器的标识,用curl -A可以指定$http_cookie                  客户端的cookie信息$limit_rate               如果Nginx服务器使用limit_rate配置了显示网络速率,则会显示,如果没有设置,则显示0$remote_addr              客户端的公网IP$remote_port                      客户端的端口$request_method               请求资源的方式,GET/PUT/DELETE等$request_filename                     当前请求的资源文件的路径名称,相当于是$document_root/$document_uri的组合$request_uri                  请求的链接,包括$document_uri和$args$scheme                   请求的协议,如ftp、http、https$server_protocol                  客户端请求资源使用的协议的版本,如HTTP/1.0,HTTP/1.1,HTTP/2.0等$server_addr                  服务器IP地址$server_name                      服务器的主机名           $server_port                  服务器的端口号$uri                          和$document_uri相同$http_referer                 客户端请求时的referer,通俗讲就是该请求是通过哪个链接跳过来的常用:$http_referer         $request_uri       $http_user_agent

案例

args:name=zhangsan&age=15document_root:/home/wwwroot/default/wounion/dragonfly/publicdocument_uri:/test/hellohost:jiqing.wounion.comhttp_user_agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36http_cookie:PHPSESSID=3ire1fr9bl3qdpd787pv0qb7a5limit_rate:0remote_addr:127.0.0.1remote_port:43180request_method:GETrequest_filename:/home/wwwroot/default/wounion/dragonfly/public/test/hellorequest_uri:/test/hello?name=zhangsan&age=15scheme:httpserver_protocol:HTTP/1.1server_addr:127.0.0.1server_name:jiqing.wounion.comserver_port:80uri:/test/hellohttp_referer:

常用正则

. : 匹配除换行符以外的任意字符? : 重复0次或1次+ : 重复1次或更多次* : 重复0次或更多次\d :匹配数字^ : 匹配字符串的开始$ : 匹配字符串的介绍{n} : 重复n次{n,} : 重复n次或更多次[c] : 匹配单个字符c[a-z] : 匹配a-z小写字母的任意一个

转载于:https://www.cnblogs.com/jiqing9006/p/10102633.html

你可能感兴趣的文章
Tensorflow版Faster RCNN源码解析(TFFRCNN) (2) test.py(不使用RPN时)(含ndarray数组复杂的切片操作等)...
查看>>
A SQLite client library written in Modern C++
查看>>
转贴 sql数据类型大全
查看>>
docker概述及基础操作
查看>>
优动漫PAINT基础系列之拾色器教学
查看>>
织女星开发板启动模式修改——从ARM M4核启动
查看>>
本周个人总结
查看>>
数据库操作手册
查看>>
FZU Moon Game(几何)
查看>>
Finding open files with lsof(ZT)
查看>>
12.1日常
查看>>
codevs 1256 打鼹鼠 LIS
查看>>
NWERC 2012 Problem E Edge Case
查看>>
JQuery选择器总结
查看>>
sql 触发器删除操作
查看>>
第一次作业
查看>>
《JavaScript高级程序设计》学习笔记——最佳实践
查看>>
【CCPC-Wannafly Winter Camp Day3 (Div1) G】排列(水题)
查看>>
js 中三元运算符的运用
查看>>
DLL函数重定向
查看>>