Nginx中的rewrite指令(break,last,redirect,permanent)

在server块下,会优先执行rewrite部分,然后才会去匹配location块 server中的rewrite break和last没什么区别,都会去匹配location,所以没必要用last再发起新的请求,可以留空

不写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

如果location中rewrite后是对静态资源的请求,不需要再进行其他匹配,一般要使用break或不写,直接使用当前location中的数据源,完成本次请求 如果location中rewrite后,还需要进行其他处理,如动态fastcgi请求(.php,.jsp)等,要用last继续发起新的请求 (根的location使用last比较好, 因为如果有.php等fastcgi请求还要继续处理)

if语句主要用来判断一些在rewrite语句中无法直接匹配的条件,比如检测文件存在与否,http header,cookie等

放在server块rewrite语句前面 如果是直接请求某个真实存在的文件,则用break语句停止rewrite检查 if (-f $request_filename) { break; }

Original: https://www.cnblogs.com/zjoch/p/11173571.html
Author: 遥望星空
Title: Nginx中的rewrite指令(break,last,redirect,permanent)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/543789/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 基于crudapi增删改查接口后端Java SDK二次开发之环境搭建(一)

    基于crudapi后端Java SDK二次开发之环境搭建(一) 背景 目前crudapi增删改查接口系统的后台Java API服务已经全部可用,为了满足复杂的场景,可以通过集成Ja…

    Java 2023年6月6日
    072
  • 【LEETCODE】70、字符匹配1023 Camelcase Matching

    最近做leetcode总感觉自己是个智障,基本很少有题能自己独立做出来,都是百度。。。 不过终于还是做出了一题。。。而且速度效率还可以 哎,加油吧,尽量锤炼自己 package y…

    Java 2023年6月5日
    060
  • Spring Boot 使用 Redis 共享 Session 代码示例

    参考资料 1. 新建 Maven 工程 2. 引入 POM 依赖 3. 编写启动类 4. 编写Controller 5. 添加src/main/resources/applicat…

    Java 2023年6月13日
    080
  • 基于texlive定制chemfig化学式转换Python服务镜像

    chemfig 据别人介绍,在绘制平面分子式,乃至化学反应式、机理图时,大家使用的基本都是ChemDraw。当然ChemDraw是一款强大的软件,无论是平面的还是立体的分子结构式都…

    Java 2023年6月7日
    085
  • xmind指定32位jdk解决在64位系统上不能启动的问题

    在xmind.ini文件的第一行添加下面的内容: -vmF:\kfgj\Java32.1.6\jdk1.6.0_16\bin\javaw.exe (根据实际情况指定32位jdk的j…

    Java 2023年5月30日
    058
  • Java 将Excel转为XML

    可扩展标记语言(XML)文件是一种标准的文本文件,它使用特定的标记来描述文档的结构以及其他特性。通常,我们可以通过格式转换的方式来得到XML格式的文件。本文,将通过Java代码介绍…

    Java 2023年5月29日
    056
  • 我的第一篇博客-Markdown基本语法

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/lihui-qianying/p/lihui.htmlA…

    Java 2023年6月14日
    077
  • 【JavaWeb-Ajax】笔记汇总 — 全局刷新和局部刷新;ajax 中使用 XMLHttpRequest 对象(四步);json 的使用

    1、全局刷新和局部刷新: 1)全局刷新:整个浏览器被新的数据覆盖,在网络中传输大量的数据(浏览器需要加载,渲染页面)。 2)局部刷新:在浏览器的内部,发起请求,获取数据,改变页面中…

    Java 2023年6月8日
    085
  • HTML页面打印

    <style media=print>.Noprint{display:none;}style> <object id="WebBrowser&q…

    Java 2023年6月16日
    064
  • springcloud–负载均衡(ribbon)

    springcloud–负载均衡(ribbon) 一、项目背景 搭建好的springcloud项目,包含erueka模块(这里是单个,也可以多个)、服务提供者(多个)、…

    Java 2023年6月16日
    084
  • 【Spring学习】AOP实现日志记录

    AOP知识点 AOP,面向切面编程。通过预编译方式和运行时动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。 AOP编程思想就是把很多类对象中的横切问题点,从业务…

    Java 2023年6月5日
    095
  • 使用 Java 操作 Redis

    Jedis Jedis 是一款使用 Java 操作 Redis 的工具,有点类似于 JDBC redis.clients jedis 2.9.0 // 创建 jedis 客户端对象…

    Java 2023年6月8日
    077
  • Java多线程与线程池技术

    一、序言 Java多线程编程线程池被广泛使用,甚至成为了标配。 线程池本质是 &#x6C60;&#x5316;&#x6280;&#x672F;的应用…

    Java 2023年6月6日
    085
  • 如何快速查看Linux日志?

    因为在生产环境会遇到很多问题,那么最快的定位方式莫过于去看日志,我们都知道服务器每天会产生大量的日志,那么如何快速的定位也就是最关键的。 本文介绍六种查看日志的命令: tail、 …

    Java 2023年6月6日
    093
  • paoding-rose 之 maven配置

    junit junit 4.11 jar test log4j log4j 1.2.17 com.54chen paoding-rose 1.0 com.54chen paodin…

    Java 2023年6月6日
    067
  • 异常

    异常 Java的基本理念是 “结构不佳的代码不运行”。—《Java编程思想》 Java中使用 异常来提供一致的错误报告模型。 那何为异常呢?日常…

    Java 2023年6月5日
    071
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球