zoukankan      html  css  js  c++  java
  • nginx重写模块

    参考:http://nginx.org/en/docs/http/ngx_http_rewrite_module.html

    1 语法

    Syntax:	if (condition) { ... }
    Default:	—
    Context:	server, location
    Syntax:	return code [text];
    return code URL;
    return URL;
    Default:	—
    Context:	server, location, if
    Syntax:	rewrite regex replacement [flag];
    Default:	—
    Context:	server, location, if
    Syntax:	break;
    Default:	—
    Context:	server, location, if
    Syntax:	set $variable value;
    Default:	—
    Context:	server, location, if
    

       

     2 测试 

    2.1 精确匹配/return code

    if ($remote_addr = 10.224.32.114){
        return 403;
    }
    #访问ip精确匹配,则403
    

      

    2.2 正则匹配/rewrite

    if ($http_user_agent ~* chrome){
        rewrite ^/(.*)$ /chrome.html break;
    }
    #如果UA不区分大小写匹配到chrome,则uri重写到/chrome.html,然后跳出
    #如果不跳出,client下面就会访问/chrome.html,然后被循环重写,会500报错
    

      

    2.3 是否存在/fastcgi_para

    if (!-e $document_root$fastcgi_script_name){
    rewrite ^/(.*)$ /404.html break;
    }
    #请求的路径+文件名不存在,重写到404.html
    

      

    2.4 设定变量

    if ($http_user_agent ~* chrome){
    set $client 1;
    }
    
    if ($http_user_agent ~* firefox){
    set $client 2;
    }
    
    if ($client = 1){
    rewrite ^/(.*) /chrome.html break;
    }
    
    if ($client = 2){
    rewrite ^/(.*) /firefox.html break;
    }
    #不同的UA,给变量设定不同的值,然后根据不同的值,给出不同的重定向
    

      

    3 反向引用

    location /test {
        rewrite ^/test/(.*)$ /new_test/$1 break;
        }
    #$1就是()里的内容
    #比如/test/xx.html,就会把xx.html传递给$1,就是重写到/new_test/xx.html
    #相当于换个目录
    

      

  • 相关阅读:
    读取XML类
    服务器每隔一段时间执行一次任务
    关于购物网站的支付接口(.NET)
    CentOS学习
    CentOS6.4 V1.0
    jquery选择器 选择器性能问题
    css选择器总结
    遮罩层,可拖动
    第四次作业结对编程
    C++中常用类型的转换总结
  • 原文地址:https://www.cnblogs.com/jabbok/p/9230670.html
Copyright © 2011-2022 走看看