编程技术分享平台

网站首页 > 技术教程 正文

Nginx学习笔记(11) rewrite模块中的if指令

xnh888 2024-09-12 22:39:47 技术教程 39 ℃ 0 评论

语法结构

语法:        if (condition) {...};
默认值:    -
上下文:    server location
示例:        
        if($http_user_agent ~ Chrome){
              rewrite /(.*) /browser/$1 break;
        }

condition

$variable

解释

= 或 !=

相等或不等比较

~ 或 !~

正则匹配或非正则匹配

~*

正则匹配,不区分大小写

-f 或 ! -f

检查文件存在或不存在

-d 或 ! -d

检查目录存在或不存在

-e 或 ! -e

检查文件、目录、符号连接等存在或不存在

-x 或 ! -x

检查文件可执行或不可执行

配置段演示

server {
    listen 8080;
    # 请求域名无限制
      #server_name ~.*;
    server_name localhost www.ngserver1.com 192.168.58.8 192.168.58.9;
    root html;
    location /search/ {
        if ( $remote_addr = "192.168.58.1" ) { # 访问用户的ip地址
        return 200 "test if OK in URL /search/";
        } 
    }
  
    # break 知识点
      # nginx/html/pics/index.html
    location / {
        if ( $uri = "/images/" ) {
        rewrite (.*) /pics/ break;
        }
        # 即使if条件成立return还是会执行,因为此时 rewrite同return 不是同级指令
        return 200 "test if failed\n";
    }
    location /test/ {        
    }
}
curl 192.168.58.8:8080/images/

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表