nginx的rewrite功能和案例介绍

news2025/2/25 8:19:59

一.定义

二.作用

1.调整用户浏览的url,模板更规范

2.提升搜索引擎网站给予用户的体验,可以将动态的url伪装成静态地址提供服务

3.在网站更换新域名后,可以通过旧域名访问到新域名

4.便于根据特殊变量1、客户信息进行url调整

三.区分地址重写和转发

1.地址重写和地址转发

2.地址转发时只会有一次网络访问请求,重写一般会有两次

3.地址转发发生在同一站点的不同项目之间,地址重写没有这个限制

4.地址重写的页面的路径需要完整路径,转发则不需要

5.地址转发可以将客户请求的数据属性传递到新的界面,而地址重写不可以,仅仅是将页面定向到服务器选定的地址

6.地址重写的速度比转发慢

四.rewrite的语法规则

1.格式

2.几个flag标记符号介绍

五.例子

1.访问不存在的网页时定向到某个界面

(1)使用if+rewrite

(2)使用try_files

2.为某个目录定义别名,用户访问的路径其实并不存在,而是将其转发到另外一个页面

(1)创建bbb目录存放index.html文件

(2)编辑nginx.conf文件

3.实现域名跳转

访问80端口域名跳转到195主机的域名


一.定义

web服务器中的必备功能,用来实现地址的重写(不是转发),可以让用户在我们网站变动的时候仍然能够通过原来的书签访问到变动后的内容。

二.作用

1.调整用户浏览的url,模板更规范

2.提升搜索引擎网站给予用户的体验,可以将动态的url伪装成静态地址提供服务

3.在网站更换新域名后,可以通过旧域名访问到新域名

4.便于根据特殊变量1、客户信息进行url调整

三.区分地址重写和转发

1.地址重写和地址转发

地址重写是地址标准化的过程,即使服务器接受了来自用户输入的不同的域名,但服务器再此之中选择确定的一个,那么客户端浏览器中的地址会改变为服务器选定的地址;而地址转发是数据传输分别到达不同的路由器服务器设备,是一个域名指向一个站点的过程,在地址转发的过程中,浏览器中的地址是不变的。

2.地址转发时只会有一次网络访问请求,重写一般会有两次

3.地址转发发生在同一站点的不同项目之间,地址重写没有这个限制

4.地址重写的页面的路径需要完整路径,转发则不需要

5.地址转发可以将客户请求的数据属性传递到新的界面,而地址重写不可以,仅仅是将页面定向到服务器选定的地址

6.地址重写的速度比转发慢

四.rewrite的语法规则

1.格式

可以应用在server、location、if等

rewrite regex replacement [flag];
#表示根据regex正则表达式匹配成功后跳转到replacement

2.几个flag标记符号介绍

last——本条规则匹配完成后, 继续向下匹配新其他uri规则

break——本条规则匹配完成即终止, 不再匹配后面的任何规则

redirect——返回 302 临时重定向, 浏览器地址栏会显示跳转后的url地址

permanent——返回 301 永久重定向, 浏览器地址栏会显示跳转后的url地址

五.例子

1.访问不存在的网页时定向到某个界面

(1)使用if+rewrite

server {
                listen 80;
                server_name www.aabb.com;
                error_log /usr/local/src/nginx-1.22.0/logs/error.log;
                access_log /usr/local/src/nginx-1.22.0/logs/access.log;
                location / { 
                        root /usr/local/src/nginx-1.22.0/html/ip;  #这个目录里不要存在index.html文件
                        index index.html index.htm;
                        if (!-f $request_filename) {
                                rewrite /. /err.html permanent; #这个err.html要放在上面那个html/ip目录里
                        }
                }

(2)使用try_files

server {
                listen 80;
                server_name www.aabb.com;

                root /usr/local/src/nginx-1.22.0/html/ip;
                index index.html index.htm;
         
                location / {
                        try_files $uri $uri/ =404;
                }

                location = /err.html {
                        root /usr/local/src/nginx-1.22.0/html/ip;
                }
                error_page 404 /err.html;
        }

 

2.为某个目录定义别名,用户访问的路径其实并不存在,而是将其转发到另外一个页面

(1)创建bbb目录存放index.html文件

[root@localhost ip]# pwd
/usr/local/src/nginx-1.22.0/html/ip
[root@localhost ip]# ll
total 4
drwxr-xr-x 2 root root 24 Aug 11 12:54 bbb
-rwxrwxrwx 1 root root  6 Aug 11 11:39 err.html
[root@localhost ip]# cat bbb/index.html 
bbb

(2)编辑nginx.conf文件

server {
                listen 80;
                server_name www.aabb.com;
                error_log /usr/local/src/nginx-1.22.0/logs/error.log;
                access_log /usr/local/src/nginx-1.22.0/logs/access.log;
                location / { 
                        root /usr/local/src/nginx-1.22.0/html/ip;
                        index index.html index.htm;
                        rewrite ^/aaa/(.*) /bbb/$1 last;  #aaa目录实际上不存在,在访问aaa时跳转访问bbb目录的内容
                }

        }    

3.实现域名跳转

访问80端口域名跳转到195主机的域名

server {
                listen 80;
                server_name www.aabb.com;
                rewrite ^/.* http://www.llss.com/$1 last;
                error_log /usr/local/src/nginx-1.22.0/logs/error.log;
                access_log /usr/local/src/nginx-1.22.0/logs/access.log;
                location / { 
                        root /usr/local/src/nginx-1.22.0/html/ip;
                        index index.html index.htm;
                }

        }    
        server { 
                listen 192.168.2.195;
                server_name www.llss.com;
                location / { 
                        root /usr/local/src/nginx-1.22.0/html/ip;
                        index index1.html index.htm;
                }
        }

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/863142.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第四篇:组件更新:完整的 DOM diff 流程是怎样的?(上)

上一节课我们梳理了组件渲染的过程,本质上就是把各种类型的 vnode 渲染成真实 DOM。我们也知道了组件是由模板、组件描述对象和数据构成的,数据的变化会影响组件的变化。组件的渲染过程中创建了一个带副作用的渲染函数,当数据变化的时候就会执…

判断时间段是否重叠

1、逻辑公式 时间段1&#xff1a;start1&#xff08;开始时间&#xff09;&#xff0c;end1&#xff08;结束时间&#xff09; 时间段2&#xff1a;start2&#xff08;开始时间&#xff09;&#xff0c;end2&#xff08;结束时间&#xff09; 重叠条件为&#xff1a;start1 <…

ad+硬件每日学习十个知识点(30)23.8.10 (SDIO端口扩展器TXS02612RTWR,模数转换器ADC121C027)

文章目录 1.cpu->SDIO端口扩展器->SD卡槽->SD卡(当然也可以反向读取)2.SDIO端口扩展器介绍3.SDIO端口扩展器TXS02612RTWR4.SD卡槽5.什么是模数转换器&#xff1f;6.I2C模数转换器ADC121C0277.模数转换方案 1.cpu->SDIO端口扩展器->SD卡槽->SD卡(当然也可以反…

win11(不符合要求)安装方法

win11&#xff08;不符合要求&#xff09;安装方法&#xff1a; 注意&#xff01;这样安装win11可能会导致文件丢失&#xff0c;请备份重要文件&#xff08;会删除c盘很多文件&#xff0c;可以在c盘Windows.old文件夹恢复。 第一步、下载win11ISO镜像&#xff1a;恰到好处系统…

【C++】开源:spdlog跨平台日志库配置使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍spdlog日志库配置使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下…

虚拟机安装国产操作系统的方法

1.这里以银河麒麟为例&#xff0c;其他以liunx为基础的国产操作系统都是一样的方法。 2.下载操作系统如下&#xff08;选第一个就行&#xff09;&#xff1a; 任选其一下载&#xff1a; 3.安装虚拟机软件(这里以virtualbox为例&#xff0c;vmare也是一样都可以) 4.打开虚拟机…

Django配置(部署环境较乱,暂时启用)

django配置 web服务器中部署项目及WSGI简介 web服务器 WSGI 在IIS中部署django项目 安装 wfastcgi &#xff1a;pip install wfastcgi安装IIS&#xff1a; 以上选择项勾选后确定 将CGI文件复制到项目中&#xff0c; 将项目复制到IIS默认目录中 部署IIS 添加变量信息如下…

Apache Paimon 流式数据湖 V 0.4 与后续展望

摘要&#xff1a;本文整理自阿里云开源大数据表存储团队负责人、阿里巴巴高级技术专家&#xff0c;Apache Flink PMC&#xff0c;Paimon PPMC 李劲松&#xff08;之信&#xff09;在 Apache Paimon Meetup 的分享。本篇内容主要分为四个部分&#xff1a; 1. 湖存储上的难点 2. …

“海纳“二维码生成器(绿色版本,离线无需安装)

介绍一款所见即所得的二维码生成器&#xff1a;"海纳"二维码生成器&#xff0c;免费、离线&#xff0c;简单、快捷。 主要功能&#xff1a; 图形界面&#xff0c;所见即所得&#xff1b;支持数字、字符、汉字等生成二维码&#xff1b;支持网址、邮件地址&#xff1…

Nodejs+vue+elementui汽车租赁管理系统_1ma2x

语言 node.js 框架&#xff1a;Express 前端:Vue.js 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat 开发软件&#xff1a;VScode 前端nodejsvueelementui, 课题主要分为三大模块&#xff1a;即管理员模块、用户模块和普通管理员模块&#xff0c;主要功能包括&#…

EMC传导干扰滤波电路设计

1.EMC概念 2.EMC 传导干扰详解 EMC传导滤波电路的设计--传导干扰详解 3.EMC 传导干扰的测量方法 4.EMC 滤波电路设计 5.浪涌抑制电路设计 6.开关电源的安全要求 7.当前开关电源灯的应用

恒盛策略:怎样看k线图实图详解如何看懂k线图?

K线图是股票剖析中常用的一种图表&#xff0c;它能够反映一段时间内股票价格的变化状况&#xff0c;对于股票投资者来说非常重要。但是&#xff0c;由于k线图并不是很好理解&#xff0c;很多投资者并不知道怎样看懂它。那么&#xff0c;咱们就从多个视点来看看怎样看k线图实图&…

echarts barEchart柱状图边框、透明、文字靠左展示

效果一 先上效果图 说明&#xff1a; 给柱状图加上 边框&#xff0c;改变柱状图颜色并透明&#xff0c;改变 X,Y轴字体颜色&#xff0c;改变 轴线颜色&#xff0c;将所有的轴线全都改成一致效果 echarts 的代码 javascript const renderBarEcharts (ele: HTMLDivElement) >…

CM11 链表分割 题解

题目描述&#xff1a; 链表分割_牛客题霸_牛客网 (nowcoder.com) 现有一链表的头指针 ListNode* pHead&#xff0c;给一定值x&#xff0c;编写一段代码将所有小于x的结点排在其余结点之前&#xff0c;且不能改变原来的数据顺序&#xff0c;返回重新排列后的链表的头指针。 题解…

交换机的堆叠技术

目录 一、堆叠的优势 1、提高可靠性 2、简化组网 3、简化管理 4、强大的网络拓展 二、堆叠的方式 1、堆叠卡堆叠 2、业务口堆叠 3、堆叠卡和业务卡堆叠的优缺点 三、堆叠的原理 1、角色 2、单机堆叠 3、堆叠ID 4、堆叠的优先级 5、堆叠的建立过程 1&#xff09…

13.1.2 对CIFAR-10数据集使用图像增广来训练ResNet

%matplotlib inline import torch import torchvision from torch import nn from d2l import torch as d2l import time使用CIFAR-10数据集,而不是我们之前使用的Fashion-MNIST数据集。这是因为Fashion-MNIST数据集中对象的位置和大小已被规范化,而CIFAR-10数据集中对象的颜色…

探索未知,即刻搭建AI原生应用!WAVE SUMMIT Workshop等你来参加

你是否希望掌握大模型开发的秘诀&#xff1f;你是否渴望得到实践操作的机会&#xff1f;如果你的心中充满热情和期待&#xff0c;那么&#xff0c;WAVE SUMMIT 2023特别设置的Workshop将会是你的知识启航站&#xff01; 本次Workshop专注于AI开发与大模型应用&#xff0c;邀请一…

Python调用阿里云短信接口

注&#xff1a; 要使用Python调用阿里云的短信服务&#xff0c;你可以使用阿里云官方提供的SDK&#xff0c;即阿里云SDK for Python。首先&#xff0c;确保你已经在阿里云上创建了短信服务并获取了相应的Access Key ID和Access Key Secret。 1、准备工作 阿里云短信网址 1、…

使用C语言实现UDP消息接收

目录 简介:步骤:步骤 1: 创建套接字步骤 2: 接收消息步骤 3: 完成 函数及变量解释总结: 简介: 在网络通信中&#xff0c;UDP&#xff08;User Datagram Protocol&#xff09;是一种无连接协议&#xff0c;它提供了一种快速、高效的数据传输方法。本文将向您展示如何使用C语言编…

Effective Java笔记(33)优先考虑类型安全的异构容器

泛型最常用于集合&#xff0c;如 Set<E &#xff1e;和 Map<K ,V&#xff1e;&#xff0c;以及单个元素的容器 &#xff0c;如 ThreadLocal<T>和 AtomicReference<T&#xff1e; 。 在所有这些用法中&#xff0c;它都充当被参数化了的容器 。 这样就限制每个容器…