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的rewrite
Mar 09 Servers
Nginx的rewrite模块详解
Mar 31 Servers
本地通过nginx配置反向代理的全过程记录
Mar 31 Servers
解决Nginx 配置 proxy_pass 后 返回404问题
Mar 31 Servers
Nginx服务器添加Systemd自定义服务过程解析
Mar 31 Servers
Nginx代理同域名前后端分离项目的完整步骤
Mar 31 Servers
Nginx反向代理及负载均衡如何实现(基于linux)
Mar 31 Servers
Nginx进程管理和重载原理详解
Apr 22 Servers
Nginx实现会话保持的两种方式
Mar 18 Servers
Nginx静态压缩和代码压缩提高访问速度详解
May 30 Servers
Nginx本地配置SSL访问的实例教程
May 30 Servers
源码安装apache脚本部署过程详解
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面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
学习使用curl采集curl使用方法
2012/01/11 PHP
深入php socket的讲解与实例分析
2013/06/13 PHP
Yii2中关联查询简单用法示例
2016/08/10 PHP
PHP实现微信对账单处理
2018/10/01 PHP
基于jquery的页面划词搜索JS
2010/09/14 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
深入理解JavaScript系列(34):设计模式之命令模式详解
2015/03/03 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
2015/08/22 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
JS控制文本域只读或可写属性的方法
2016/06/24 Javascript
浅谈jQuery效果函数
2016/09/16 Javascript
基于JavaScript实现自定义滚动条
2017/01/25 Javascript
javascript中replace使用方法总结
2017/03/01 Javascript
JS设置手机验证码60s等待实现代码
2017/06/14 Javascript
JavaScript-定时器0~9抽奖系统详解(代码)
2017/08/16 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
微信小程序实现文字无限轮播效果
2018/12/28 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
package.json各个属性说明详解
2020/03/11 Javascript
Python的Django框架中消息通知的计数器实现教程
2016/06/13 Python
Python 模拟登陆的两种实现方法
2017/08/10 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
2019/06/05 Python
python学生信息管理系统实现代码
2019/12/17 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
Python基于pandas绘制散点图矩阵代码实例
2020/06/04 Python
Python实现一个简单的毕业生信息管理系统的示例代码
2020/06/08 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
埃弗顿足球俱乐部官方网上商店:Everton Direct
2018/01/13 全球购物
Can a struct inherit from another struct? (结构体能继承结构体吗)
2016/09/25 面试题
县级领导干部开展党的群众路线教育实践活动工作汇报
2014/10/25 职场文书
2014年优秀党员材料
2014/12/18 职场文书
五年级小学生评语
2014/12/26 职场文书
公司地址变更通知
2015/04/25 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android