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设置日志打印post请求参数的方法
Mar 31 Servers
使用goaccess分析nginx日志的详细方法
Jul 09 Servers
NGINX 权限控制文件预览和下载的实现原理
Jan 18 Servers
教你使用Jenkins集成Harbor自动发布镜像
Apr 03 Servers
Linux下使用C语言代码搭建一个简单的HTTP服务器
Apr 13 Servers
如何通过cmd 连接阿里云服务器
Apr 18 Servers
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
Apr 29 Servers
nginx 配置缓存
May 11 Servers
阿里云服务器部署RabbitMQ集群的详细教程
Jun 01 Servers
Linux中sftp常用命令整理
Jun 28 Servers
Nginx代理Redis哨兵主从配置的实现
Jul 15 Servers
nginx sticky实现基于cookie负载均衡示例详解
Dec 24 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
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
2017/06/02 PHP
PHP实现的curl批量请求操作示例
2018/06/06 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
图片之间的切换
2006/06/26 Javascript
window.parent与window.openner区别介绍
2012/04/12 Javascript
别了 JavaScript中的isXX系列
2012/08/01 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
基于jQuery实现仿淘宝套餐选择插件
2015/03/04 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
2017/01/13 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
react-redux中connect的装饰器用法@connect详解
2018/01/13 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
Javasript设计模式之链式调用详解
2018/04/26 Javascript
JavaScript 中的 this 工作原理
2018/06/20 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
2018/12/20 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
Websocket 向指定用户发消息的方法
2020/01/09 Javascript
[01:33:30]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第二场 2月5日
2021/03/11 DOTA
python pdb调试方法分享
2014/01/21 Python
wxPython窗口的继承机制实例分析
2014/09/28 Python
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
Pytorch入门之mnist分类实例
2018/04/14 Python
keras的三种模型实现与区别说明
2020/07/03 Python
django有哪些好处和优点
2020/09/01 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
德国最大的婴儿用品网上商店:Kidsroom.de(支持中文)
2020/09/02 全球购物
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
2016/05/09 面试题
委托证明的格式
2014/01/10 职场文书
完美主义个人的自我评价
2014/02/17 职场文书
校园广播稿精选
2014/10/01 职场文书
婚礼长辈答谢词
2015/09/29 职场文书