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匹配规则及优先级

  1. = 严格匹配这个查询。如果找到,停止搜索。
  2. ^~ 匹配路径的前缀,如果找到,停止搜索。
  3. ~ 为区分大小写的正则匹配
  4. ~* 为不区分大小写匹配 
    优先级: =, ^~, ~/~*, 无

break语句

放在server块rewrite语句前面 
如果是直接请求某个真实存在的文件,则用break语句停止rewrite检查

if (-f $request_filename) {
break;
}

转自:http://blog.csdn.net/zhanlanmg/article/details/49684803

Nginx中的rewrite指令(break,last,redirect,permanent)的更多相关文章

  1. Nginx中的rewrite指令

    转自:http://www.76ku.cn/articles/archives/317 rewite.在server块下,会优先执行rewrite部分,然后才会去匹配location块server中的 ...

  2. Nginx中的Rewrite的重定向配置与实践

    阅读目录 一:理解地址重写 与 地址转发的含义. 二:理解 Rewrite指令 使用 三:理解if指令 四:理解防盗链及nginx配置   简介:Rewrite是Nginx服务器提供的一个重要的功能, ...

  3. nginx中的try_files指令解释

    try_files 指令的官方介绍比较让人摸不着头脑,经网上一番总结查看,try_files最核心的功能是可以替代rewrite.   try_files   语法: try_files file . ...

  4. 干货 | 一文彻底读懂nginx中的location指令

    一个执着于技术的公众号 Nginx系列导读 给小白的 Nginx 10分钟入门指南 Nginx编译安装及常用命令 完全卸载nginx的详细步骤 Nginx 配置文件详解 一文带你读懂Nginx反向代理 ...

  5. emlog在nginx中添加rewrite规则

    rewrite ^/(post|record|sort|author|page)-([-]+)\.html$ /index.php?$=$; rewrite ^/tag-(.+)\.html$ /in ...

  6. nginx rewrite 指令

    ginx通过ngx_http_rewrite_module模块支持url重写.支持if条件判断,但不支持else. 该模块需要PCRE支持,应在编译nginx时指定PCRE源码目录, nginx安装方 ...

  7. nginx中location、rewrite用法总结

    一.location用法总结 location可以把不同方式的请求,定位到不同的处理方式上. 1.location的用法 location ~* /js/.*/\.js 以 = 开头,表示精确匹配:如 ...

  8. nginx中location的顺序(优先级)及rewrite规则写法

    一.location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所 ...

  9. Nginx中的 location 匹配和 rewrite 重写跳转

    Nginx中的location匹配和rewrite重写跳转 1.常用的Nginx正则表达式 2.location 3.rewrite 4.rewrite实例 1.常用的Nginx正则表达式: ^ :匹 ...

随机推荐

  1. SSL、数字签名、CA 工作原理通俗描述

    SSL(Secure Socket Layer) 是一种加密技术,可以提供对称加密和非对称加密.由于它在协议层里正好是在传输层与应用层之间,这就决定了上层应用必须经过它,这就是它广泛流行和易于实现的原 ...

  2. linux命令学习(5):pwd命令

    Linux中用 pwd 命令来查看”当前工作目录“的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置. ...

  3. dom元素操作(动态事件绑定)

    遇到的问题:动态生成的内容,事件绑定会出错. 例子:http://snowinmay.net/jqm/dom-learn2.html 1.绑定事件对动态生成的新元素无效. 问题描述:bind事件绑定后 ...

  4. JavaBean 和 pojo 的区别

    JavaBean 是一种JAVA语言写成的可重用组件.它的方法命名,构造及行为必须符合特定的约定: 这个类必须有一个公共的缺省构造函数. 这个类的属性使用getter和setter来访问,其他方法遵从 ...

  5. HashSet TreeSet

    1 HashSet 1.1 父类 java.lang.Object 继承者 java.util.AbstractCollection<E> 继承者 java.util.AbstractSe ...

  6. Flask web开发之路十一

    首先写一下cookie和session的概念,然后是Flask中session的工作机制以及操作session ### cookie: 1. `cookie`出现的原因:在网站中,http请求是无状态 ...

  7. Nodejs----单点登录

    ---------------------------------------------------------------------------------------------单点登陆原理- ...

  8. db2 删除过期的日志和备份文件(转)

    DB2 删除过期备份和日志 $ db2 list history archive log all forpayment2    ------列出归档日志 $ db2 list history back ...

  9. CentOS7(linux) 通过服务名查询安装目录

    #ps aux|grep nginx root 1231 0.0 0.0 46336 956 ? Ss 04:21 0:00 nginx: master process /usr/sbin/nginx ...

  10. System.InvalidOperationException: 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。

    x 昨天还好好地,然后清理一下电脑垃圾,就突然报这个错误了; 网上搜索了一下:找到解决方案了,但是由于底层知识的功力不够,至今未知具体怎么导致的... 解决方案↓ 进注册表 按Win+R运行reged ...