rewrite_log on ;#每次rewrite都会记录一条记录在errorlog里
error_log logs/xxx.log notice;
  location /first {
rewrite /first(.*) /second$ last; #表示重新开始匹配location rewrite 第一个参数 /first(.*)表示被替换的值 /second$1 表示要替换成的值 last(flag前面有解释)
return 'first!\n';
} location /second {
rewrite /second(.*) /third$ break; #直接停止
#rewrite /second(.*) /third$;
return 'second!\n';
} location /third {
return 'third!\n';
}
    

    location /redirect1 {
      rewrite /redirect1(.*) $1 permanent; #permanent表示直接返回301重定向
    }


    location /redirect2 {
      rewrite /redirect2(.*) $1 redirect; #redirect表示302重定向
    }


    location /redirect3 {
      rewrite /redirect3 http://www.baidu.com; #如过重定向里带有http或https则默认302重定向
    }


    location /redirect4 {
      rewrite /redirect4(.*) http://rewrite.taohui.tech$1 permanent; #虽然有http或https则应为flag是permanent 所以重定向是301
    }

 
[root@ conf]# curl http://shop**.com.cn:8080/redirect3 -I #通过代码可以看到以下头部结果
HTTP/1.1 Moved Temporarily
Server: openresty/1.13.6.2
Date: Sun, Apr :: GMT
Content-Type: text/html
Content-Length:
Connection: keep-alive
Location: http://www.baidu.com

这里要注意 假设设置了return 指令 又同时设置累error_page 指令 那么 return 将优先被执行 因为 处于SERVER_REWRITE阶段 执行在POSTREAD阶段后 所以先执行 error_page将不起作用

error_page 指令

error_page  /.html

  error_page    /.html;

  error_page = /xxx.png (当发生404时候 返回一张图片 返回码是200)

  location / {

    error_page  =@fallback;

  }

  location @fallback{

    proxy_pass http://backend;

  }

 if 指令

syntax: if(condition){....}

default: --

context:server、location

nginx.conf 演示

isten ;#监听端口
root html/;
location /first {
rewrite /first(.*) /second$ last;#用replacement进行新的url地址匹配
return 'first!\n';
}
location /second {
rewrite /second(.*) /third$ break;
return 'second!\n';
}
location /third {
return 'third!\n';
}

L 51-53

Nginx REWRITE阶段的更多相关文章

  1. nginx rewrite 指令last break区别最详细的解释

    转自:http://blog.sina.com.cn/s/blog_4f9fc6e10102ux0w.html http://blog.cafeneko.info/2010/10/nginx_rewr ...

  2. Nginx执行阶段

    Nginx 介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮 ...

  3. nginx rewrite规则last与break的区别

    概要:break和last都能阻止继续执行后面的rewrite指令,last如果在location下的话,对于重写后的URI会重新匹配location,而break不会重新匹配location. 区别 ...

  4. nginx rewrite

    # nginx rewrite rule #Main menu rules.rewrite ^(.*?)/index.html$ $1/index.php?r=site/index break;rew ...

  5. nginx rewrite重写与防盗链配置

    nginx rewrite重写规则与防盗链配置方法 时间:2016-02-04 15:16:58来源:网络 导读:nginx rewrite重写规则与防盗链配置方法,rewrite规则格式中flag标 ...

  6. nginx——rewrite模块

    1.什么是Nginx的Rewrite规则? Rewrite主要的功能就是实现URL的重写,Nginx的Rewrite规则采用PCRE(Perl Compatible Regular Expressio ...

  7. Nginx Rewrite规则初探(转)

    Nginx  rewrite(nginx url地址重写)Rewrite 主要的功能就是实现URL的重写,Nginx的Rewrite规则采用Pcre,perl兼容正则表达式的语法规则匹配,如果需要Ng ...

  8. Nginx Rewrite规则记录

    Rewrite 是一种服务器的重写脉冲技术,它可以使得服务器可以支持 URL 重写,是一种最新流行的服务器技术.它还可以实现限制特定IP访问网站的功能.很多情况下,某个 IP 的访问很容易造成 CPU ...

  9. Nginx rewrite 规则 与 proxy_pass 实现

    Nginx rewrite 规则  与 proxy_pass 实现     -------------------------------------------------------------- ...

随机推荐

  1. centos6安装tomcat8.5

    //参考https://www.cnblogs.com/xdp-gacl/p/4097608.html [root@192 ~]# mount /dev/sr0 /mnt/usb1[root@192 ...

  2. Objective-C 基于Aspects

    JavaScriptCore没有禁,因为各种小程序都在用 网络下载文件没有禁

  3. 【Codeforces 152E】Garden

    Codeforces 152 E 题意:给你一个\(n\times m\)的格子,每个格子里面有一个值\(a_{i,j}\)表示如果要将这个格子变成路的话需要花费这么多代价.现在有\(k\)个特殊格子 ...

  4. CF939D Love Rescue 并查集

    传送门 题意:给出两个由小写字母构成的长度相等的字符串$S$与$T$,给出变换$c1\,c2$表示将两个字符串中所有$c1$字符变为$c2$,求将$S$和$T$通过这种变换变为相等字符串的最少变换次数 ...

  5. CF58E Expression 搜索

    题目传送门:http://codeforces.com/problemset/problem/58/E 题意:给出一个形如$x+y=z$(不一定正确)的式子,试输出一个$a+b=c$的式子,满足:$1 ...

  6. 计算2个时间之间经过多少Ticks

    Ticks是一个周期,存储的是一百纳秒,换算为秒,一千万分之一秒.我们需要计算2个时间之间,经过多少Ticks,可以使用下面的方法来实现,使用2个时间相减. 得到结果为正数,是使用较晚的时间减去较早的 ...

  7. WPF制作带明细的环形图表

    效果 明细用Popup实现的,录gif时,Popup显示不出来,不知道为什么,所以静态图凑合看吧 大体思路 图表使用Arc+Popup实现 图表分为两部分,一是环形部分,一是标注的明细部分. 环形部分 ...

  8. 用JS制作一个信息管理平台(1)

    首先,介绍一些需要用到的基本知识. [JSON] JSON是数据交互中,最常用的一种数据格式. 由于各种语言的语法都不相同,在传递数据时,可以将自己语言中的数组.对象等转换为JSON字符串. 传递之后 ...

  9. Oracle_安装问题

    [INS-07003] 访问 BeanStore 时出现意外错误   oracle安装时出现以下问题: 原因:未配置环境变量CLASSPASH 解决方法:新增系统变量,在我的电脑上右击-属性-高级系统 ...

  10. 初级Java工程师面试所遇面试题

    1.servlet的生命周期 : 一.百度百科 : 1.客户端请求servlet: 2.加载servlet类到内存: 3.实例化并调用init()方法初始化servlet: 4.调用service() ...