当前位置:首页 » 《随便一记》 » 正文

nginx if 指令

4 人参与  2024年05月15日 11:06  分类 : 《随便一记》  评论

点击全文阅读


目录

nginx if 指令直接判断变量判断是否等于字符串判断变量是否匹配正则表达式文件及目录判断示例1:判断index.html是否存在示例2:判断URL中是否存在某个参数Parameter示例3:判断URI中是否为某个特定路径示例4:开放白名单内的功能,其余功能禁止访问示例5:if-else示例6:多重if判断参考

nginx if 指令

参考这里

Syntax:if (condition) { ... }Default:—Context:server, location

直接判断变量

如果变量值是空字符串或者"0"时,判定为false;否则,判定为true。1.0.1版本前,任何以"0"开头的字符串,判定为false。
if ($slow) {    limit_rate 10k;}if ($invalid_referer) {    return 403;}

判断是否等于字符串

使用 “=” 和 “!=” 操作符判断是否等于字符串

if ($request_method = POST) {    return 405;}

判断变量是否匹配正则表达式

使用 “~” 和 “!~” 操作符判断变量是否匹配正则表达式。

~:判断时区分字符大小写~*:判断时不区分字符大小写!~:判断时区分字符大小写!~*:判断时不区分字符大小写
if ($http_user_agent ~ MSIE) {    rewrite ^(.*)$ /msie/$1 break;}if ($http_cookie ~* "id=([^;]+)(?:;|$)") {    set $id $1;}

文件及目录判断

“-f”, “!-f”:判断指定的路径是否为存在且为文件;“-d”, “!-d”:判断指定的路径是否为存在且为目录;“-e”, “!-e”:判断指定的路径是否存在,文件或目录均可;“-x”, “!-x”:判断指定路径的文件是否存在且可执行;

示例1:判断index.html是否存在

location =/index.html {if (!-f "$document_root/index.html") {    rewrite ^(.*)$  /index2.html;}}

示例2:判断URL中是否存在某个参数Parameter

if ($query_string ~* ".*(?:^|\?|&)method=autoGenerateIndex(?:(?:&.*)|$)") { ...}

示例3:判断URI中是否为某个特定路径

if ($request_uri ~* "^/app/stat/"){    ...}

示例4:开放白名单内的功能,其余功能禁止访问

# 白名单开关。false,打开;true,关闭。set $isInWhiteList 'false';# 白名单1:统计if ($request_uri ~* "^/app/stat/"){    set $isInWhiteList  'true';}# 白名单2:ajax接口if ($request_uri ~* "^/app/ajax/"){    set $isInWhiteList 'true';}# 采用白名单方式放行功能location /app {    if ($isInWhiteList != 'true') {        rewrite ^/ /deny;    }    proxy_pass  http://127.0.0.1:8080;}# 禁止访问location =/deny {    deny all;  }

示例5:if-else

# 条件:ifif ($request_uri ~* "abc"){set $flag '${flag}1';}# 条件:elseif ($request_uri !~* "abc"){set $flag '${flag}2';}

示例6:多重if判断

server {...set $flag "";# 条件1:ifif ($request_uri ~* "abc"){set $flag '${flag}1';}# 条件1:elseif ($request_uri !~* "abc"){set $flag '${flag}2';}# 条件2:ifif ($query_string ~* ".*(?:^|\?|&)method=autoGenerateIndex(?:(?:&.*)|$)") { set $flag '${flag}1';}# 条件2:elseif ($query_string !~* ".*(?:^|\?|&)method=autoGenerateIndex(?:(?:&.*)|$)") { set $flag '${flag}2';}# 多重if完了,根据结果做相应处理if ($flag = '11') {...}if ($flag = '12') {...}if ($flag = '21') {...}if ($flag = '22') {...}location / {...}}

参考

https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#if
Nginx的多重if判断


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/108845.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 祖母寿宴,侯府冒牌嫡女被打脸了(沈屿安秦秀婉)阅读 -
  • 《雕花锦年,昭都旧梦》(裴辞鹤昭都)完结版小说全文免费阅读_最新热门小说《雕花锦年,昭都旧梦》(裴辞鹤昭都) -
  • 郊区41号(许洛竹王云云)完整版免费阅读_最新全本小说郊区41号(许洛竹王云云) -
  • 负我情深几许(白诗茵陆司宴)完结版小说阅读_最热门小说排行榜负我情深几许白诗茵陆司宴 -
  • 九胞胎孕妇赖上我萱萱蓉蓉免费阅读全文_免费小说在线看九胞胎孕妇赖上我萱萱蓉蓉 -
  • 为保白月光,侯爷拿我抵了债(谢景安花田)小说完结版_完结版小说全文免费阅读为保白月光,侯爷拿我抵了债谢景安花田 -
  • 陆望程映川上官硕《我的阿爹是带攻略系统的替身》最新章节阅读_(我的阿爹是带攻略系统的替身)全章节免费在线阅读陆望程映川上官硕
  • 郑雅琴魏旭明免费阅读_郑雅琴魏旭明小说全文阅读笔趣阁
  • 头条热门小说《乔书意贺宴临(乔书意贺宴临)》乔书意贺宴临(全集完整小说大结局)全文阅读笔趣阁
  • 完结好看小说跨年夜,老婆初恋送儿子故意出车祸_沈月柔林瀚枫完结的小说免费阅读推荐
  • 热推《郑雅琴魏旭明》郑雅琴魏旭明~小说全文阅读~完本【已完结】笔趣阁
  • 《你的遗憾与我无关》宋怀川冯洛洛无弹窗小说免费阅读_免费小说大全《你的遗憾与我无关》宋怀川冯洛洛 -

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1