Nginx极客时间:rewrite阶段的rewrite模块:return指令
1. rewrite模块的return指令:
return指令 是由 rewrite模块
提供的 一个非常常用的指令,可以在 SERVER_REWRITE 和 REWRITE 这两个阶段生效,
它可以帮助我们做 重定向 和 一些简单的返回。
如果return指令生效了,则后面所有阶段的HTTP模块是没有机会得到执行的。
2. return指令的用法:
如图中所示,return指令 有三种用法:
return code [text];
return code URL;
return URL;
举例:
location / {return 404 "find nothing!";
}
# return code [text];server {return 403;
}
# return code;
HTTP “30X” 状态码的含义:
HTTP 1.0 标准:
301
:http 1.0 永久重定向
例如客户端要访问网站A,Nginx返回301和网站B的URL重定向,则客户端会将这一次的重定向结果缓存起来,以后只要遇到要访问网站A的资源时,就自动重定向到网站B上,再也不会去访问网站A;
302
:临时重定向,禁止被缓存
例如客户端要访问网站A,Nginx返回302和网站B的URL重定向,那么这一次客户端会重定向的去访问网站B,
但是当下一次客户端又需要访问网站A的资源时,还是会去访问网站A的URL,客户端不会缓存Nginx返回的302指示的重定向结果;
HTTP 1.1 标准:
303
:临时重定向,允许改变方法,禁止被缓存
与302功能类似,区别在于允许改变方法,例如访问网站A时使用的是POST方法,在访问重定向后的网站B时可以变为GET方法;
307
:临时重定向,不允许改变方法,禁止被缓存
与302功能类似,区别在于不允许改变方法,即重定向前后的两次访问必须使用相同的方法,如果访问网站A的方法是GET,那么重定向后访问网站B也必须是GET方法;
308
:永久重定向,不允许改变方法
与301功能类似,区别在于不允许改变改变访问方法。
Nginx 自定义:
444
:立刻关闭连接,Nginx不会再给客户端返回任何东西。
3. return指令 与 error_page指令:
error_page指令 的功能是: 当我们收到一个返回码的时候,我们可以将其重定向为另外一个URI,也可以指定给用户返回不一样的内容,
例如收到404的时候,默认就是给用户返回404,但是某些网站为了给用户更好的体验,可能会返回图片,或者一些独立的页面,
例如:
error_page 404 /404.html;
#当收到404返回码时,给用户返回 /404.html 页面
一个例子说明return与error_page的关系:
- 当return与error_page同时出现,error_page还有被执行的机会吗?
- 当return同时出现在 server配置块 和 location配置块 下,两个return指令是否有 合并 关系?
第一个问题,如果return与error_page同时出现,则error_page是得不到执行的;
第二个问题,前面讲到过,return指令属于 “动作类指令”(另一种指令类型是 “值类指令”),动作类指令不能合并。
而在上面的例子中可以看到 return 403;
是出现在 server{} 配置块中,是属于 SERVER_REWRITE
阶段的;
而 return 404 "find nothing!";
是出现在 location{} 配置块中,是属于 REWRITE
阶段的,即 SEVER_REWITE 会在 REWRITE 阶段 前先执行,所以后面的return得不到执行,返回值是第一个return的值。
执行效果演示:
Nginx极客时间:rewrite阶段的rewrite模块:return指令相关推荐
- 【极客时间】左耳听风
极客时间-左耳朵耗子 01程序员如何用技术变现 上 02 程序员如何用技术变现下(2022/9/25) 10 渴望.热情和选择(2022/10月5日) 02 程序员如何用技术变现下 如何让自己的技能变 ...
- 本人亲自整理的极客时间设计模式之美的硬核笔记
由于笔记内容过多,我把它放到语雀上了. 点击我 以下内容是为了让搜索引擎,检测到这篇文章.要阅读体验,请点击上面的连接"点击我",去我的语雀看.对了,我看到语雀那里有投诉的功能,请 ...
- 极客时间《软件工程之美》学完感
最近花了将进两个多月的时间,把极客时间上的专栏<软件工程之美>专栏学完了,同时也把相应的配套书本 ,邹欣的<构建之法>,读完了.学完这个专栏,让我获益良多. 专栏<软件工 ...
- 如何将极客时间课程制作成kindle电子书
订阅了几个极客时间的专栏,一直没有时间去看. 最近,想着如果把内容制作成电子书,利用上下班时间学习一下,岂不是很方便? 在网上搜到一个很好用的开源软件,几分钟就可以把极客时间的专栏做成电子书,简直太棒 ...
- 【极客时间】《MySQL45讲》学习笔记
内容来源:开篇词 | 这一次,让我们一起来搞懂MySQL-极客时间 以下是来自网友对课程的知识点的分类总结: 本章内容[本章内容建议阅读时长] 编号|建议阅读时长|文章标题 1. 基础知识[12'] ...
- 极客时间和极客学院_极客在海滩
极客时间和极客学院 As reported by Jeremy, Andy and Jon, last weekend was a chance for that rare creature – th ...
- <极客时间:零基础入门Spark> 学习笔记(持续更新中...)
看的是极客时间的课,讲得很不错 零基础入门 Spark (geekbang.org) 基础知识 01 Spark:从"大数据的Hello World"开始 准备工作 IDEA安装S ...
- 极客时间高级Java工程师体系课2.0
高级Java性能优化的七个方向 下栽の地止:https://lexuecode.com/6572.html 1.复用优化 在写代码的时候,你会发现有很多重复的代码可以提取出来,做成公共的方法.这样,在 ...
- 极客时间-算法训练营1.2 实战题目解析:移动零
一 序 本文属于极客时间-算法训练营 学习笔记系列. 二 刷题步骤 第一遍 五分钟:读题 + 思考 直接看解法:多看几种,比较解法优劣 背诵.默写好的解法 第二遍 马上自己写 --> Leetc ...
最新文章
- R语言glm拟合logistic回归模型:模型评估(模型预测概率的分组密度图、混淆矩阵、准确率、精确度、召回率、ROC、AUC)、PRTPlot函数获取logistic模型最优阈值(改变阈值以优化)
- SAP MM Movement Type 503的使用
- Android Studio 一些方便使用的设置
- 绘画软件优动漫PAINT系统要求
- MySQL查看表中的约束
- 《算法竞赛进阶指南》 0x30 数学知识 数论 题目
- mysql update多条件批量更新_Mybatis中进行批量更新(updateBatch)
- XSS-Payloads集合
- LeetCode刷题(41)--Sort Color
- Redis开发运维实践上线部署规划之持久化设置
- javascript权威指南_重读javascript权威指南(3)
- idea安装Scala插件
- System与Runtime类
- c语言银行排队系统链表,银行预约排队系统(数据结构问题)
- 发抖音上热门最佳时间 视频MD5修改器苹果手机
- Linux快捷键详解
- 彩色图像灰度化MFC
- 基于STM32的频率计Proteus仿真教程
- 对Orders订单表中的常见统计查询
- 大型分布式网站架构如何设计
热门文章
- 这几天一直在给自己打鸡血~
- mysql 多 inner join_mySQL多个INNER JOIN
- YOLOv5手把手教你制作VOC格式数据集与模型训练
- win10计算机语言超清壁纸,Windows 10 Hero高清桌面壁纸(1920×1200)
- IList(T) 方法
- me shy是什么歌 抖音make_抖音shy是什么歌 抖音shy歌曲分享
- Python算法--IP地址分类
- Q1.UNITY2019设置中文
- [Android]使用自定义SurfaceView实现幸运转盘效果
- 微信php开发用户分组,asp.net微信开发用户分组管理的示例代码