return指令

功能:

  • 停止处理请求,直接返回响应码或重定向到其他URL
  • 执行return指令后,location中后续指令将不会被执行

语法:

return code [text];
return code URL;
return URL;

return code URL;中的code一般是重定向状态码。
重定向状态码有:

  • 301:永久重定向(HTTP1.0标准)
  • 302:临时重定向,禁止被缓存(HTTP1.0标准)
  • 303:临时重定向,禁止被缓存,允许改变方法(HTTP2.0标准)
  • 307:临时重定向,禁止被缓存,不允许改变方法(HTTP2.0标准)
  • 308:永久重定向,不允许改变方法(HTTP2.0标准)

默认值:无
上下文:server、location、if
示例:
1、配置nginx.conf,返回状态码

server {listen       8080;server_name  localhost;charset      utf-8;location / {return 200;}
}

访问路径curl localhost:8080 -i,会看到头信息的状态码

2、配置nginx.conf,返回状态码和文本

server {listen       8080;server_name  localhost;charset      utf-8;location / {return 200 "this is http code 200";}}

信息会放在data中传输,使用360浏览器打开,会显示文本信息,使用谷歌浏览器打开会下载一个文本文件。

3、配置nginx.conf,重定向其他URL

server {listen       8080;server_name  localhost;charset      utf-8;location / {return 302 /download/;}location /download/ {root /home/nginx;autoindex on;autoindex_exact_size off;autoindex_format html;autoindex_localtime on;}
}

当浏览器输入http://101.200.147.104:8080的时候会重定向到/download/路径下,一定要跟配置的/download/一致,在浏览器上访问的就是http://101.200.147.104:8080/download/,如下图所示:

4、配置nginx.conf,不使用状态码,也能重定向其他URL,但是要加具体RUL路径

server {listen       8080;server_name  localhost;charset      utf-8;location / {#return 302 /download/;return http://101.200.147.104:8080/download/;}location /download/ {root /home/nginx;autoindex on;autoindex_exact_size off;autoindex_format html;autoindex_localtime on;}}

rewrite指令

功能:rewrite指令能够根据匹配的正则表达式,重写URL。
语法:rewrite regex replacement [flag]
flag可选值及含义:

  • last:重写后的URL发起新请求,再次进入server段,重试location中的匹配
  • break:直接使用重写后的URL,不再匹配其他location中的语句
  • redirect:返回302临时重定向
  • permanent:返回301永久重定向

默认值:无
上下文:server、location、if

示例:

server {listen       8080;server_name  localhost;charset      utf-8;location /images {rewrite /images/(.*) /download/$1;}location /download/ {root /home/nginx;}
}

当浏览器上输入http://101.200.147.104:8080/images/的时候,会被重定向到/download/页面,其中/images/(.*) /download/$1中表示当访问images下的任意文件时,都重定向到/download/目录下,$1表示前项引用,即引用前面的正则,即(.*)。
如果后面跟上break,就不会走下面的/download/,而是直接返回images下的文件,而last则会继续走下面的/download/

return和rewrite指令的执行顺序

示例:

server {listen       8080;server_name  localhost;charset      utf-8;location /images {rewrite /images/(.*) /download/$1 last;return 200;}location /download/ {root /home/nginx;rewrite /download/(.*) /pics/$1;return 200;}location /pics/ {return 200;}
}

示例分析:

  • 第一个/images的rewrite指令中有last指令,所以会继续当前server中的location重写匹配,会直接跳到/download/中,而第一个return则不会执行;
  • /download/中,rewrite指令后面没有last执行,则会顺序执行到return 200;语句,而不会继续到/pics/下;
  • 如果在/download/的rewrite中加入break语句,则会显示pics中的内容,而不会显示 /pics/中的return 200。如:
location /download/ {root /home/nginx;rewrite /download/(.*) /pics/$1 break;return 200;
}
location /pics/ {return 200;
}

Nginx(8)_return和rewrite相关推荐

  1. Nginx URL重写(rewrite)配置及信息详解

    URL重写有利于网站首选域的确定,对于同一资源页面多条路径的301重定向有助于URL权重的集中 Nginx URL重写(rewrite)介绍 和apache等web服务软件一样,rewrite的组要功 ...

  2. Nginx配置location及rewrite规则

    Nginx配置location及rewrite规则 示例: location  = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location ...

  3. Nginx实战(二) Rewrite + 图片的压缩过滤

    文章目录 Nginx实战(二) Rewrite + 图片的压缩过滤 1.图片的压缩过滤 2.HTTPS加密认证 3.Nginx的rewrite rewite规则 网页重写的具体实现 如何实现两个域名之 ...

  4. 快速掌握Nginx(二) —— Nginx的Location和Rewrite

    1 location详解 1.location匹配规则 Nginx中location的作用是根据Url来决定怎么处理用户请求(转发请求给其他服务器处理或者查找本地文件进行处理).location支持正 ...

  5. nginx的url重写[rewrite规则和参考]

    本日志内容来自互联网和平日使用经验,整理一下方便日后参考. Nginx Rewrite 相关指令有 if.rewrite.set.return 等. if 的语法 应用于 server 和 locat ...

  6. phpshe b2c商城系统配置nginx支持pathinfo和rewrite的写法

    找到/usr/local/webserver/nginx/conf/nginx.conf文件(环境配置不一样,路径也可能不一样) 并在server {...省略掉的代码}中添加如下代码即可(如果程序放 ...

  7. 雷林鹏分享:YAF 在Nginx环境下的Rewrite规则

    这2天在学习YAF框架,在nginx环境下参照手册配置rewrite规则后,访问页面出现404错误,最后发现是rewrite规则书写上出现了些错误. 手册提供的Nginx的Rewrite: serve ...

  8. 前端开发掌握nginx常用功能之rewrite

    上一篇博文对nginx最常用功能的server及location的匹配规则进行了讲解,这也是nginx实现控制访问和反向代理的基础.掌握请求的匹配规则算是对nginx有了入门,但是这些往往还是不能满足 ...

  9. nginx(五)rewrite

    **ngx_http_rewrite_module模块配置** 将请求的uri基于正则表达式进行重写: 例: http-->https domain1.tld-->domain2.tld ...

最新文章

  1. linux 红帽 查看分辨率,求诸位帮个忙,红帽linux怎么该屏幕分辨率
  2. 记我的一次电话面试 (转)
  3. 前端面试常见逻辑题收集及分析
  4. python selenium自动化面试_18年selenium3+python3+unittest自动化测试教程(上)
  5. jsp文件命名规范_代码规范整理
  6. HTML5开发常见的7个框架,不可不知,收藏啦
  7. Struts2标签库整理【完整】
  8. python-函数入门(二)
  9. stm32系统时钟配置,标准库v3.5
  10. sis最新ip地址2020入口一_2020最新大厂内部 PHP 高级工程师面试题汇总(一)
  11. win10计算机管理看不见蓝牙,Win10设备管理器找不到蓝牙设备的解决方案
  12. 计算机网络原理IP计算总结
  13. 六轴机器人运动学正解
  14. a标签和阻止事件冒泡
  15. Ubuntu下安装UE和AirSim并使用UE4.27编译C++项目
  16. spring实现dubbo服务
  17. 实验记录 | 6/16
  18. 终端安全-准入控制AAA认证
  19. cocoscreator使用说明
  20. 职级有哪些?看这篇文章就够了

热门文章

  1. Unity接入罗技G29方向盘,通过SDK获取按键信息
  2. 以太坊区块和交易的存储结构分析
  3. excel表格导出之后身份证号列变成了科学计数法
  4. LUA教程类型Strings-7
  5. php框架原理,路由原理 · thinkphp框架原理解析 · 看云
  6. 字蛛fontSpider的使用
  7. QC之旅途笔记 (转)
  8. oracle 存储过程执行成功后 报: ORA-01722: 无效数字,问题排查
  9. 计算机 保研经历,我的保研经历
  10. PRN(20201231):驾驶人驾驶决策机制遵循最小作用量原理