Linux Nginx Rewrite

重写中用到的指令

1. if () {}

If  语法格式

If 空格 (条件) {

    重写模式

}


2.set   #设置变量

3.return 返回状态码

4.break 跳出rewtire

5.rewrite 重写


if条件又怎么写?

答:3种写法

1: “=”来判断相等, 用于字符串比较

2: “~” 用正则来匹配(此处的正则区分大小写)

   ~* 不区分大小写的正则

3: -f -d -e来判断是否为文件,为目录,是否存在.


例子:

            if  ($remote_addr = 192.168.1.100) {

                return 403;

            }

 

 if ($http_user_agent ~ MSIE) {

                rewrite ^.*$ /ie.htm;

                break; #(不break会循环重定向)

 }

 

             if (!-e$document_root$fastcgi_script_name) {

                rewrite ^.*$/404.html break;

            } 


set 是设置变量用的, 可以用来达到多条件判断时作标志用.

达到apache下的 rewrite_condition的效果

 

如下: 判断IE并重写,且不用break; 我们用set变量来达到目的

if ($http_user_agent ~* msie) {

                set $isie 1;

            }

 

            if($fastcgi_script_name = ie.html) {

                set $isie 0;

            }

 

            if ($isie 1) {

                rewrite ^.*$ie.html;

            }
















你可能感兴趣的:(Nginx,linux)