Nginx Rewrite使用场景及配置方法解析


Posted in Servers onApril 01, 2021

Nginx Rewrite使用场景

1.URL地址跳转,例如用户访问pm.com将其跳转到baidu.com或者当用户通过http的方式访问时,将其跳转至https的方式访问。

2.URL伪静态,将动态页面显示为静态页面方式的一种技术,减少动态URL地址对外暴露过多的参数,提升更高的安全性。

3.搜索引擎SEO优化依赖于URL路径,以便支持搜索引擎录入

4.可以调整用户浏览的URL,看起来更规范,合乎开发及产品人员的需求。

配置语法

rewrite regex replacement [flag];

4中flag

last 停止处理后续rewrite指令集,跳出location作用域,并开始搜索与更改后的URI相匹配的location,URL地址不变

break 停止处理后续rewrite指令集,不会跳出location作用域,不再进行重新查找,终止匹配,URL地址不变

redirect 返回302临时重定向,浏览器地址栏会显示跳转后的URL地址,爬虫不会更新自己的URL数据库

permanent 返回301永久重定向,浏览器地址栏会显示跳转后的URL地址,爬虫会更新自己的URL数据库

注:使用last和break时浏览器中的地址不会改变,使用redirect和permanent则会改变

举例说明:

location /abc/ {
  rewrite ^/abc/(.*) /whsir/$1 break;
  return 401;
}
location /opq/ {
  rewrite ^/opq/(.*) /whsir/$1 last;
  return 402;
}
location /whsir/ {
  return 403;
}

输入abc后,如果能匹配到whsir的内容,则返回200,否则返回404

输入opq后,如果能匹配到whsir的内容,则返回403,否则返回404

last和break只返回一个状态码即成功或失败,redirect和permanent会先返回302或301,在返回成功或失败

常用的Nginx全局变量:

例:http://www.pm.com:99/aa/bb/test.php

$host        www.pm.com

$server_port     99

$request_uri     /aa/bb/test.php

$document_root   /pm_code

$request_filename  /pm_code/aa/bb/test.php

案例1:外部跳转

打开lb01虚拟机,先将之前的自定义配置文件关闭,新建/etc/nginx/conf.d/rewrite.conf

Nginx Rewrite使用场景及配置方法解析

注:^/意思为以根(这里根目录为/pm_code,对应域名为www.pm.com)开头的url都会重定向到百度。

修改/etc/nginx/nginx.conf文件

将错误日志级别修改为notice使其能记录到重定向信息(debug, info, notice, warn, error, crit越靠前记录的信息越多)

Nginx Rewrite使用场景及配置方法解析

在http模块中添加一行

rewrite_log on;(打开rewrite日志记录)

测试

在浏览器地址栏中输入www.pm.com(在hosts中已配置好),会重定向到百度首页

Nginx Rewrite使用场景及配置方法解析

案例2:内部跳转

更改/etc/nginx/conf.d/rewrite.conf内容

Nginx Rewrite使用场景及配置方法解析

在/pm_code中创建文件2.html(内容222),在浏览器中输入www.pm.com/1.html

Nginx Rewrite使用场景及配置方法解析

在错误日志中查看记录

Nginx Rewrite使用场景及配置方法解析

使用return

在上述方法中,浏览器地址栏中显示的是1.html,而网页内容是2.html的内容,如果想要地址栏中也显示2.html,将location中的内容更改为 return 302 /2.html; 或者 rewrite .* /2.html redirect;

使用正则

例:将www.pm.com/2020/* 重定向到 www.pm.com/2019/*

Nginx Rewrite使用场景及配置方法解析

括号代表一个整体,$1代表前面第一个括号内的内容

将http跳转到https

Nginx Rewrite使用场景及配置方法解析

注:nginx 1.14版本后可以不用写ssl on了,listen那里写成listen 443 ssl;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Servers 相关文章推荐
centos8安装nginx1.9.1的详细过程
Aug 02 Servers
学习nginx基础知识
Sep 04 Servers
总结高并发下Nginx性能如何优化
Nov 01 Servers
nginx实现动静分离的方法示例
Nov 07 Servers
Z-Order加速Hudi大规模数据集方案分析
Mar 31 Servers
Nginx速查手册及常见问题
Apr 07 Servers
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
Apr 07 Servers
Windows Server 2019 域控制器安装图文教程
Apr 28 Servers
利用nginx搭建RTMP视频点播、直播、HLS服务器
May 25 Servers
Windows Server 2008配置防火墙策略详解
Jun 28 Servers
windows server2012 R2下安装PaddleOCR服务的的详细步骤
Sep 23 Servers
Nginx解决403 forbidden的完整步骤
Apr 01 #Servers
详解nginx.conf 中 root 目录设置问题
Apr 01 #Servers
小程序后台PHP版本部署运行 LNMP+WNMP
扩展多台相同的Web服务器
Apr 01 #Servers
Nginx安装完成没有生成sbin目录的解决方法
nginx location优先级的深入讲解
Mar 31 #Servers
Nginx反爬虫策略,防止UA抓取网站
Mar 31 #Servers
You might like
php中一个完整表单处理实现代码
2011/11/10 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
2015/08/17 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
jQuery实现表格隔行及滑动,点击时变色的方法【测试可用】
2016/08/20 Javascript
Javascrip实现文字跳动特效
2016/11/27 Javascript
各种选择框jQuery的选中方法(实例讲解)
2017/06/27 jQuery
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
微信小程序如何像vue一样在动态绑定类名
2018/04/17 Javascript
vue升级之路之vue-router的使用教程
2018/08/14 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
Python实现telnet服务器的方法
2015/07/10 Python
python文件操作相关知识点总结整理
2016/02/22 Python
带你认识Django
2019/01/15 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
python递归调用中的坑:打印有值, 返回却None
2020/03/16 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
HTML5 Canvas draw方法制作动画效果示例
2013/07/11 HTML / CSS
I.T集团香港官方商城:ITeSHOP.com Hong Kong
2019/02/15 全球购物
资生堂英国官网:Shiseido英国
2020/12/30 全球购物
联强国际笔试题面试题
2013/07/10 面试题
链表面试题-一个链表的结点结构
2015/05/04 面试题
网游商务专员求职信
2013/10/15 职场文书
给水排水工程专业毕业生推荐信
2013/10/28 职场文书
校园安全检查制度
2014/02/03 职场文书
2014年健康教育实施方案
2014/02/17 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
“向国旗敬礼”主题班会活动设计方案
2014/09/27 职场文书
院系推荐意见
2015/06/05 职场文书
领导欢送会主持词
2015/07/06 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
springboot 全局异常处理和统一响应对象的处理方式
2022/06/28 Java/Android