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解决403 forbidden的完整步骤
Apr 01 Servers
详解Nginx 被动检查服务器的存活状态
Oct 16 Servers
nginx中proxy_pass各种用法详解
Nov 07 Servers
教你快速构建一个基于nginx的web集群项目
Nov 27 Servers
教你使用Jenkins集成Harbor自动发布镜像
Apr 03 Servers
Apache Hudi 加速传统的批处理模式
Apr 24 Servers
Windows Server 2016 配置 IIS 的详细步骤
Apr 28 Servers
WinServer2012搭建DNS服务器的方法步骤
Jun 10 Servers
Apache POI操作批量导入MySQL数据库
Jun 21 Servers
服务器nginx权限被拒绝解决案例
Sep 23 Servers
Apache SkyWalking 监控 MySQL Server 实战解析
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新手上路(三)
2006/10/09 PHP
PHP语法速查表
2006/12/06 PHP
php下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
event.X和event.clientX的区别分析
2011/10/06 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
2014/11/12 Javascript
JavaScript定义类和对象的方法
2014/11/26 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
JavaScript实现前端实时搜索功能
2020/03/26 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
vue生成token并保存到本地存储中
2018/07/17 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
2019/01/18 jQuery
泛谈JS逻辑判断选择器 || &&
2019/05/24 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
vue抽出组件并传值实例
2020/07/31 Javascript
如何实现vue的tree组件
2020/12/03 Vue.js
vue实现简易计算器功能
2021/01/20 Vue.js
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
python数据清洗系列之字符串处理详解
2017/02/12 Python
Python分支结构(switch)操作简介
2018/01/17 Python
Django 5种类型Session使用方法解析
2020/04/29 Python
python如何进入交互模式
2020/07/06 Python
html5文本内容_动力节点Java学院整理
2017/07/11 HTML / CSS
应届大学生自荐信格式
2013/09/21 职场文书
求职推荐信范文
2013/12/01 职场文书
毕业生就业自荐书
2013/12/15 职场文书
买房子个人收入证明
2014/10/12 职场文书
担保书范本
2015/01/20 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书