• Geek_f6f02b
    2019-11-13
    这个if指令在同一个块中出现2次会有这个“覆盖问题”,那我将所有指令都写一个if指令中是不是就能规避这个问题?
    问题2:如果一个if在上级模块,一个if在子模块,他们之间还会有“覆盖问题”吗?
    
     1
  • 阿柒
    2019-03-22
    谢谢提醒
    
     1
  • 悟空
    2020-01-29
    看了这节课,不知道下面这段配置该如何解释了?

    location / {
        access_log /usr/work/tool/log/webserver/os-app-api.log main;
       set $flag 0;
       if ( $host = "taohui.com" ) {
            set $flag "${flag}1";
       }
       if ( $uri != "/pc/index") {
            set $flag "${flag}2";
        }
        if ( $uri != "/") {
            set $flag "${flag}3";
        }
       if ( $flag = "0123") {
            rewrite "^/(.*)$" https://www.baidu.com permanent;
       }
        if ( $uri = "/d") {
            set $flag "${flag}5";
        }
       if ( $flag = "015") {
            rewrite "^/(.*)$" https://www.google.com;
       }
    }
    展开

    作者回复: 这段指令是排他性的,也就是非此即彼的,它只是在改flag变量,所以没有关系。这节课其实告诉你:多个if间是无法协作的。比如,第1个if产生结果A,第2个产生结果B,那么A、B无法共存

    
    
我们在线,来聊聊吧