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. PAT A1010 Radix (25 分)——进制转换,二分法

    Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The an ...

  2. 如何控制docker的CPU和内存份额

    1.内存:docker run -it -m 200M --memory-swap=300M progrium/stress --vm 1 --vm-bytes 500M 刚开始会报错: docker ...

  3. 5-(基础入门篇)学会刷Wi-Fi模块固件(刷LUA版本固件)

    http://www.cnblogs.com/yangfengwu/p/9065559.html 基础教程源码链接请在淘宝介绍中下载,由于链接很容易失效,如果失效请联系卖家,谢谢 https://it ...

  4. Django框架知识点整理

    1.安装django, pip install django 或者是通过 “==”符号指定版本号. 2.创建一个Django项目: django-admin createproject project ...

  5. SPOJ GSS(Can you answer the Queries)系列 7/8

    GSS1 线段树最大子段和裸题,不带修改,注意pushup. 然而并不会猫树之类的东西 #include<bits/stdc++.h> #define MAXN 50001 using n ...

  6. java通过反射拷贝两个对象的同名同类型变量

    深拷贝和浅拷贝 首先对象的复制分为深拷贝和浅拷贝,关于这两者的区别,简单来说就是对于对象的引用,在拷贝的时候,是否会新开辟一块内存,还是直接复制引用. 两者的比较也有很多,具体可以看这篇文章: htt ...

  7. 阿里Java面经大全(整合版)

    本文里的面经内容全部来源于牛客网,作为秋招备战复习与查缺补漏时使用.里面部分面经有我的注释和想法,以及部分解答,不一定正确,大家可以查询补充. 阿里巴巴,三面,java实习 昨天晚上11点打电话来,问 ...

  8. layer.conifrm 非阻塞执行 ztree删除节点 问题

    layer.confirm无法阻塞js执行,导致ztree插件的beforeRemove回调函数未等待用户确定删除便已经移除界面中的节点, 因此可能会出现前后台数据不一致情况,正常逻辑理应删除后台数据 ...

  9. OpenGL学习(1)——创建窗口

    这是我的第一篇博客,试着记录学习OpenGL的过程.使用的教程:LearnOpenGL,系统:Deepin 15.9.3,IDE:Qt Creator. 添加头文件 创建窗口用到两个库:GLFW和GL ...

  10. centos6下redis cluster集群部署过程

    一般来说,redis主从和mysql主从目的差不多,但redis主从配置很简单,主要在从节点配置文件指定主节点ip和端口,比如:slaveof 192.168.10.10 6379,然后启动主从,主从 ...