Nginx REWRITE阶段






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阶段的更多相关文章
- nginx rewrite 指令last break区别最详细的解释
转自:http://blog.sina.com.cn/s/blog_4f9fc6e10102ux0w.html http://blog.cafeneko.info/2010/10/nginx_rewr ...
- Nginx执行阶段
Nginx 介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮 ...
- nginx rewrite规则last与break的区别
概要:break和last都能阻止继续执行后面的rewrite指令,last如果在location下的话,对于重写后的URI会重新匹配location,而break不会重新匹配location. 区别 ...
- nginx rewrite
# nginx rewrite rule #Main menu rules.rewrite ^(.*?)/index.html$ $1/index.php?r=site/index break;rew ...
- nginx rewrite重写与防盗链配置
nginx rewrite重写规则与防盗链配置方法 时间:2016-02-04 15:16:58来源:网络 导读:nginx rewrite重写规则与防盗链配置方法,rewrite规则格式中flag标 ...
- nginx——rewrite模块
1.什么是Nginx的Rewrite规则? Rewrite主要的功能就是实现URL的重写,Nginx的Rewrite规则采用PCRE(Perl Compatible Regular Expressio ...
- Nginx Rewrite规则初探(转)
Nginx rewrite(nginx url地址重写)Rewrite 主要的功能就是实现URL的重写,Nginx的Rewrite规则采用Pcre,perl兼容正则表达式的语法规则匹配,如果需要Ng ...
- Nginx Rewrite规则记录
Rewrite 是一种服务器的重写脉冲技术,它可以使得服务器可以支持 URL 重写,是一种最新流行的服务器技术.它还可以实现限制特定IP访问网站的功能.很多情况下,某个 IP 的访问很容易造成 CPU ...
- Nginx rewrite 规则 与 proxy_pass 实现
Nginx rewrite 规则 与 proxy_pass 实现 -------------------------------------------------------------- ...
随机推荐
- Saltstack学习之二:target与模块方法的运行
对象的管理 saltstack系统中我们的管理对象叫做target,在master上我们可以采用不同的target去管理不同的minion,这些target都是通过去管理和匹配minion的id来做的 ...
- Android ScrollView和ListView联用,且ListView可以下拉刷新和上拉加载
ScrollView嵌套listView且ListView可以实现上拉加载. 由于代码太长,在此只提供实现思路: 先不说上拉加载的事,咱们先回想一下,ScrollView和LsitView联用,时的解 ...
- IIS 8的第一次请求不变慢如何配置
首先需要在Window中添加Application Initialization 在IIS中配置Application Pool 在IIS配置Web Site 配置完成,如果版本在7.5,可以下载:A ...
- odoo学习之弹框显示
按条件隐藏: <xpath expr="//group[1]" position="attributes"> <attribute name= ...
- Luogu4423 BJWC2011 最小三角形 平面最近点对
传送门 题意:给出$N$个点,求其中周长最小的三角形(共线的也计算在内).$N \leq 2 \times 10^5$ 这道题唤起了我对平面最近点对的依稀记忆 考虑平面最近点对的分治,将分界线两边的求 ...
- [Spark][Python]Spark Python 索引页
Spark Python 索引页 为了查找方便,建立此页 === RDD 基本操作: [Spark][Python]groupByKey例子
- [Oracle]如何查看 10046 trace 中的 tim= ... 的具体时刻
可以在 Linux 下,用下列方式: 如10046 trace 文件中如果有如下的内容:... tim = 1503032923 可以用 date 命令加 option 来看它的时刻: date - ...
- SequenceFile文件
SequenceFile文件是Hadoop用来存储二进制形式的key-value对而设计的一种平面文件(Flat File).目前,也有不少人在该文件的基础之上提出了一些HDFS中小文件存储的解决方案 ...
- Ubuntu 打包后安装提示:子进程 已安装 pre-removal 脚本 返回了错误号 1
子进程 已安装 pre-removal 脚本 返回了错误号 1或2 与 子进程 已安装 post-installation 脚本 返回了错误号 1或2 一.子进程 已安装 pre-removal ...
- STM32串口打印输出乱码的解决办法
前言 最近在试用uFUN开发板,下载配套的Demo程序,串口数据输出正常,当使用另一个模板工程,调用串口printf调试功能时,输出的却是乱码,最后发现是外部晶振频率不一样.很多STM32开发板都是使 ...