Nginx(Rewrite语法)

1. if 语法:

    a) 在server里面进行 if(){}这样的条件判断,比如我们匹配一个 ip 并返回值:(记得在 if (  ){}的时候要留有空格,不然会包unknow ...)

     

  要留意的是: 如果下面还有一个server的话,就算你在if 里面用了break ,return ,系统还是会往下匹配的,然后返回另外个server的location。

2.防盗链:

  a) location ~ .*.(gif|jpg|jpeg|png|bmp|swf)${

    valid_referers none blocked www.baidu.com www.ywnds.com;

        if ($invalid_referer) {
            return 404;
        }

  }

3.rewrite(重写)的重定向:

  a) //如果query string中包含"post=140",则永久重定向到example.com

   if ($args ~ post=140){
        rewrite ^ http://example.com/ permanent;
    }
  b) rewrite一般是写入server, if , location 中的,rewrite都是在同个域名下进行跳转的,
   例如 http://ywnds.com/a/we/index.php?id=1&u=str,只对/a/we/index.php重写,语法如上面所示。

  c) rewrite 会进行正则的重写,然后在进行location循环匹配,最多循环10次

4.

全局变量

                  下面是可以用作if判断的全局变量

5. rewrite的具体浅出深入 ,可以查看:https://www.cnblogs.com/beyang/p/7832460.html

原文地址:https://www.cnblogs.com/Jackey-fighting/p/9138317.html