核心指令if
原创2026/3/5大约 1 分钟
该指令用来支持条件判断,并根据条件判断结果选择不同的 Nginx 配置,可以在 server 块或 locatio 块中配置该指令。
语法结构: if (condition) { ... }
其中,花括号代表一个作用域,形成一个 if 配置块,是条件为真时的 Nginx 配置。condition 为判断条件( true/false ),它可以支持以下几种设置方法:
变量名-如果变量的值为空字符串或者“0”开头的任意字符串,if 指令认为条件为 false,其他情况为 true,比如:
if ($slow) { ..... #Nginx配置 }使用 "="(等于) 和 "!=" (不等于) 比较变量和字符串是否相等,相等时 if 指令为条件为 true,反之为 false。
if ($request_method = POST) { return 405; }
变量与正则表达式
~ 表示匹配过程对大小写敏感
~* 表示匹配过程对大小写不敏感
!~ 表示匹配失败是 if 指令认为条件为 true 否则为 false
if ($http_user_agent ~ MSIE) {
# $http_user_agent 的值中是否包含MSIE字符串,如果包含,为 true
}使用
server {
listen 80;
server_name localhost;
location / {
if ($remote_addr = "192.168.0.128"){
return https://qq.com;
}
if ($http_user_agent ~ Chrome){
return https://baidu.com;
}
return https://mi.com;
}
}判断 ip 地址是否为192.168.66.10,如果是跳转到 https://qq.com
如果是谷歌浏览器访问就跳转到 https://baidu.com
如果都不是就跳转到 https://mi.com
至此,本章节的学习就到此结束了,如有疑惑,可对接技术客服进行相关咨询。