Nginx中的rewrite指令(break,last,redirect,permanent)
rewite
在server块下,会优先执行rewrite部分,然后才会去匹配location块
server中的rewrite break和last没什么区别,都会去匹配location,所以没必要用last再发起新的请求,可以留空
location中的rewirte:
不写last和break - 那么流程就是依次执行这些rewrite
1. rewrite break
url重写后,直接使用当前资源,不再执行location里余下的语句,完成本次请求,地址栏url不变
2. rewrite last
url重写后,马上发起一个新的请求,再次进入server块,重试location匹配,超过10次匹配不到报500错误,地址栏url不变
3. rewrite redirect
返回302临时重定向,地址栏显示重定向后的url,爬虫不会更新url(因为是临时)
4. rewrite permanent
返回301永久重定向, 地址栏显示重定向后的url,爬虫更新url
使用last会对server标签重新发起请求
如果location中rewrite后是对静态资源的请求,不需要再进行其他匹配,一般要使用break或不写,直接使用当前location中的数据源,完成本次请求
如果location中rewrite后,还需要进行其他处理,如动态fastcgi请求(.PHP,.jsp)等,要用last继续发起新的请求
(根的location使用last比较好, 因为如果有.php等fastcgi请求还要继续处理)
使用alias指定源:必须使用last
if语句主要用来判断一些在rewrite语句中无法直接匹配的条件,比如检测文件存在与否,http header,cookie等
location匹配规则及优先级
- = 严格匹配这个查询。如果找到,停止搜索。
- ^~ 匹配路径的前缀,如果找到,停止搜索。
- ~ 为区分大小写的正则匹配
- ~* 为不区分大小写匹配
优先级: =, ^~, ~/~*, 无
break语句
放在server块rewrite语句前面
如果是直接请求某个真实存在的文件,则用break语句停止rewrite检查
if (-f $request_filename) {
break;
}
转自:http://blog.csdn.net/zhanlanmg/article/details/49684803
Nginx中的rewrite指令(break,last,redirect,permanent)的更多相关文章
- Nginx中的rewrite指令
转自:http://www.76ku.cn/articles/archives/317 rewite.在server块下,会优先执行rewrite部分,然后才会去匹配location块server中的 ...
- Nginx中的Rewrite的重定向配置与实践
阅读目录 一:理解地址重写 与 地址转发的含义. 二:理解 Rewrite指令 使用 三:理解if指令 四:理解防盗链及nginx配置 简介:Rewrite是Nginx服务器提供的一个重要的功能, ...
- nginx中的try_files指令解释
try_files 指令的官方介绍比较让人摸不着头脑,经网上一番总结查看,try_files最核心的功能是可以替代rewrite. try_files 语法: try_files file . ...
- 干货 | 一文彻底读懂nginx中的location指令
一个执着于技术的公众号 Nginx系列导读 给小白的 Nginx 10分钟入门指南 Nginx编译安装及常用命令 完全卸载nginx的详细步骤 Nginx 配置文件详解 一文带你读懂Nginx反向代理 ...
- emlog在nginx中添加rewrite规则
rewrite ^/(post|record|sort|author|page)-([-]+)\.html$ /index.php?$=$; rewrite ^/tag-(.+)\.html$ /in ...
- nginx rewrite 指令
ginx通过ngx_http_rewrite_module模块支持url重写.支持if条件判断,但不支持else. 该模块需要PCRE支持,应在编译nginx时指定PCRE源码目录, nginx安装方 ...
- nginx中location、rewrite用法总结
一.location用法总结 location可以把不同方式的请求,定位到不同的处理方式上. 1.location的用法 location ~* /js/.*/\.js 以 = 开头,表示精确匹配:如 ...
- nginx中location的顺序(优先级)及rewrite规则写法
一.location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所 ...
- Nginx中的 location 匹配和 rewrite 重写跳转
Nginx中的location匹配和rewrite重写跳转 1.常用的Nginx正则表达式 2.location 3.rewrite 4.rewrite实例 1.常用的Nginx正则表达式: ^ :匹 ...
随机推荐
- Spring学习笔记--Spring配置文件和依赖注入
Spring配置文件 1.alias:设置别名,为bean设置别名,并且可以设置多个别名; <!-- 设置别名 --> <alias name="user" al ...
- J - Vertical Histogram(1.5.7)
J - Vertical Histogram(1.5.7) Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d &am ...
- BP
下面内容抄袭这里的:galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html Principles of training multi-layer neu ...
- 打造研发效率核心竞争力!第40届MPD软件工作坊北京站议题公开
同样是做研发,为什么你的效率总是提不上来?都在寻找创新的技术领域,为何别人总能抢占先机?提升自己的研发竞争力,你都有什么方法? 研发效能已经成为软件企业发展非常核心的竞争力.身处在高速发展的软件研发行 ...
- Kindle Paper White 使用感受视频上线啦!
大家可以通过以下链接前往我的主页观看视频哦! https://www.youtube.com/watch?v=CESqzxTrAq4&t=322s 欢迎大家点赞.关注! 这期视频用iPhone ...
- hadoop 0.20.2伪分布式安装详解
adoop 0.20.2伪分布式安装详解 hadoop有三种运行模式: 伪分布式不需要安装虚拟机,在同一台机器上同时启动5个进程,模拟分布式. 完全分布式至少有3个节点,其中一个做master,运行名 ...
- /etc/apt/sources.list" E212: Can't open file for writing解决方案
:w !sudo tee % > /dev/null 解决.
- Hot Plug Detection, DDC, and EDID
Hot Plug Detection, DDC, and EDID DataPro Tech Info > Hot Plug Detection, DDC, and EDID Hot Plugg ...
- ORM Active Record Data Mapper
What's the difference between Active Record and Data Mapper? https://www.culttt.com/2014/06/18/whats ...
- Xcode编译警告Assigning to 'id<XXXDelegat> ——Nullable' from incompatible type 'XXXView *const_strong'
编译报警告 可能是 自定义分类使用协议时出现与父类协议的冲突 解决方法如下: