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 相关文章推荐
Nginx解决前端访问资源跨域问题的方法详解
Mar 31 Servers
查看nginx配置文件路径和资源文件路径的方法
Mar 31 Servers
使用nginx配置访问wgcloud的方法
Jun 26 Servers
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
Jul 07 Servers
nginx共享内存的机制详解
Mar 21 Servers
配置Kubernetes外网访问集群
Mar 31 Servers
OpenStack虚拟机快照和增量备份实现方法
Apr 04 Servers
Linux中如何安装并部署Redis
Apr 18 Servers
Win2008系统搭建DHCP服务器
Jun 25 Servers
Nginx配置使用详解
Jul 07 Servers
Windows Server 2012 R2服务器安装与配置的完整步骤
Jul 15 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中数组的三种排序方法分享
2012/05/07 PHP
PHP下使用CURL方式POST数据至API接口的代码
2013/02/14 PHP
javascript concat数组累加 示例
2009/09/03 Javascript
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
原生js实现shift/ctrl/alt按键的获取
2013/04/08 Javascript
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
javascript常用的方法分享
2015/07/01 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
2017/06/22 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
Vuex的实战使用详解
2019/10/31 Javascript
[01:28:44]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第一场 1月10日
2021/03/11 DOTA
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
2017/07/22 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
python网络应用开发知识点浅析
2019/05/28 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
Python有参函数使用代码实例
2020/01/06 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
解决在keras中使用model.save()函数保存模型失败的问题
2020/05/21 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
2020/07/13 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
python list的index()和find()的实现
2020/11/16 Python
python自动生成证件号的方法示例
2021/01/14 Python
HTML5实现晶莹剔透的雨滴特效
2014/05/14 HTML / CSS
AmazeUI 平滑滚动效果的示例代码
2020/08/20 HTML / CSS
服装设计专业自荐信
2014/06/17 职场文书
学生会竞选演讲稿怎么写
2014/08/26 职场文书
2014年禁毒工作总结
2014/11/24 职场文书
承诺函格式模板
2015/01/21 职场文书
2015年敬老月活动总结
2015/03/27 职场文书
Python import模块的缓存问题解决方案
2021/06/02 Python
2022微信温控新功能上线
2022/05/09 数码科技