网站首页 > 技术文章 正文
if指令
该指令用来支持条件判断,并根据条件判断结果选择不同的Nginx配置。
语法 if (condition){...},嵌入位置是在 server、location
if后面,必须要有一个空格
condition为判定条件,可以支持以下写法:
- 变量名。如果变量名对应的值为空或者是0,if都判断为false,其他条 件为true。
具体配置实例:
vim nginx.conf //打开配置
$username如果为为空,就会输出0,如果变量名对应的值为空或者是0,if都判断为false,其他条件为true,此刻下面的return 输出的是empty
检验语法,重新加载
访问IP之后,输出了param is empty了
现在将$username设置成"ROSE"如果不是空字符串了
检验语法,重载配置
现在输出了ROSE了
还可以将if后面添加$args参数,
因为?没有,当前获取的值夜没有,最后返回了一个error
如果还有值,最终就返回了success
- 变量名。如果变量名对应的值为空或者是0,if都判断为false,其他条 件为true。
if ($param){
}
2. 使用"="和"!="比较变量和字符串是否相等,满足条件为true,不满 足为false
这里可以设置,如果是POST请求,就可以直接返回一个错误码
if ($request_method = POST){
return 405;
}
具体写法
第一次请求发送是GET请求
cmd简单访问请求的写法
curl -X POST http://xxx.xxx.xxx.xx:8081/testif
3. 使用正则表达式对变量进行匹配,匹配成功返回true,否则返回 false。变量与正则表达式之间
使用"~","~*","!~","!~*"来连接。
"~"代表匹配正则表达式过程中区分大小写,
"~*"代表匹配正则表达式过程中不区分大小写
"!~"和"!~*"刚好和上面取相反值,如果匹配上返回false,匹配不上返 回true
$http_user_agent存储的是客户端具体的版本信息,它所存储的是user_agent所需的值,在user_agent中所存储的是Safari的意思
具体检验写法:~ Safari
因为最后包含Safari的值,最终显示了Chrome
做一个检验大小写的配置 ~safari的写法
因为~区分了大小写,走了return系列
如果写了~*就能够匹配了
现在就看到了,已经满足了Chrome的配置条件了
4. 判断请求的文件是否存在使用"-f"和"!-f",
当使用"-f"时,如果请求的文件存在返回true,不存在返回false。
当使用"!f"时,如果请求文件不存在,但该文件所在目录存在返回
true,文件和目录都不存在返回false,如果文件存在返回false
5、用户请求在访问一个根本不存在的路径的时候,出现了404的问题,这种写法不太好看,如果想要编写一些提示信息使用"-f"和"!-f"进行判断
资源不存在的提示信息
访问了没有资源的页面显示的设置
5、判断请求的目录是否存在使用"-d"和"!-d",
当使用"-d"时,如果请求的目录存在,if返回true,如果目录不存在 则返回false
当使用"!-d"时,如果请求的目录不存在但该目录的上级目录存在则返 回true,
该目录和它上级目录都不存在则返回false,如果请求目录存 在也返回false. 6. 判断请求的目录或者文件是否存在使用"-e"和"!-e"
当使用"-e",如果请求的目录或者文件存在时,if返回true,否则返回 false. 当使用"!-e",如果请求的文件和文件所在路径上的目录都不存在返回 true,否则返回false
7. 判断请求的文件是否可执行使用"-x"和"!-x" 当使用"-x",如果请求的文件可执行,if返回true,否则返回false
当使用"!-x",如果请求文件不可执行,返回true,否则返回false
猜你喜欢
- 2025-03-11 Excel数据查找匹配再添新成员:TEXTJOIN+IF
- 2025-03-11 Excel进阶神器!IF函数高阶用法全解析,打工达人必备!
- 2025-03-11 最常用函数IF多种应用解密
- 2025-03-11 Cursor使用指南:释放AI编程的无限潜能
- 2025-03-11 web前端tips:使用 forEach 循环中的 return 语句会发生什么?
- 2025-03-11 Excel技巧:关于IF函数的典型用法(一)
- 2025-03-11 办公必备的多条件统计函数公式,直接套用,请收好备用
- 2025-03-11 Excel神器IF函数用法大全,打工人效率翻倍全靠它!
- 2025-03-11 当你与这几个函数公式成功牵手后,就会发现,原来Excel也很有趣
- 2025-03-11 Excel函数if多个条件并列怎么输入?来看看并列条件的公式分解
- 03-12我实现了Java多返回值
- 03-12Python 函数中的 4 种参数类型
- 03-12「洞唐Coder」自学Python编程的第0021天:自定义函数(下)
- 03-12Python函数的10个级别,你达到了第几级?
- 03-12Python中的元组和列表的相同点和不同点是啥呢么?
- 03-12Python有序对象元组处理技术
- 03-12Python 中的函数和模块
- 03-12震惊!Python中定义函数竟然这样用,你知道吗?
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)