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 相关文章推荐
Apache压力测试工具的安装使用
Mar 31 Servers
Nginx快速入门教程
Mar 31 Servers
Nginx代理同域名前后端分离项目的完整步骤
Mar 31 Servers
Nginx进程管理和重载原理详解
Apr 22 Servers
windows下快速安装nginx并配置开机自启动的方法
May 11 Servers
nginx的zabbix 5.0安装部署的方法步骤
Jul 16 Servers
Nginx源码编译安装过程记录
Nov 17 Servers
使用kubeadm命令行工具创建kubernetes集群
Mar 31 Servers
阿里云日志过滤器配置日志服务
Apr 09 Servers
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
Apr 29 Servers
永中文档在线转换预览基于nginx配置部署方案
Jun 10 Servers
CentOS7设置ssh服务以及端口修改方式
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
PHP与SQL注入攻击[二]
2007/04/17 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
js+php实现静态页面实时调用用户登陆状态的方法
2015/01/04 PHP
Bootstrap+PHP实现多图上传功能实例详解
2018/04/08 PHP
从URL中提取参数与将对象转换为URL查询参数的实现代码
2012/01/12 Javascript
Node.js Streams文件读写操作详解
2016/07/04 Javascript
手机图片预览插件photoswipe.js使用总结
2016/08/25 Javascript
AngularJs  Using $location详解及示例代码
2016/09/02 Javascript
Vue+element-ui 实现表格的分页功能示例
2018/08/18 Javascript
js限制输入框只能输入数字(onkeyup触发)
2018/09/28 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
vue学习笔记之slot插槽用法实例分析
2020/02/29 Javascript
Ajax获取node服务器数据的完整步骤
2020/09/20 Javascript
vuejs实现下拉框菜单选择
2020/10/23 Javascript
[06:53]2018DOTA2国际邀请赛寻真——勇于创新的Vici Gaming
2018/08/14 DOTA
初学python数组的处理代码
2011/01/04 Python
Windows下安装python2.7及科学计算套装
2015/03/05 Python
使用Python的Django框架结合jQuery实现AJAX购物车页面
2016/04/11 Python
对web.py设置favicon.ico的方法详解
2018/12/04 Python
python获取交互式ssh shell的方法
2019/02/14 Python
python操作cfg配置文件方式
2019/12/22 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
2020/04/14 Python
python小白切忌乱用表达式
2020/05/29 Python
Python Selenium模块安装使用教程详解
2020/07/09 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
加大码胸罩、内裤和服装:Just My Size
2019/03/21 全球购物
经典优秀个人求职自荐信格式
2013/09/25 职场文书
人力资源经理的岗位职责
2014/03/02 职场文书
荷叶母亲教学反思
2014/04/30 职场文书
触电现场处置方案
2014/05/14 职场文书
领导班子四风对照检查材料思想汇报
2014/09/26 职场文书
超市采购员岗位职责
2015/04/07 职场文书
小学语文教师竞聘演讲稿范文
2019/08/09 职场文书
解析Java异步之call future
2021/06/14 Java/Android
SpringBoot整合Mybatis Generator自动生成代码
2021/08/23 Java/Android
Python列表的索引与切片
2022/04/07 Python