集群Rewrite重定向

news/2024/12/2 19:01:24/
1.Rewrite简述

Rewrite主要实现url地址重写,以及重定向,就是把传入web的请求重定向到其他url的过程。

2.Rewrite使用场景

(1)地址跳转,用户访问一个URL,将其定向到另一个URL。

(2)协议跳转,用户通过http协议请求网站时,将其重新跳转至HTTPS协议方式。

(3)伪静态,动态页面静态化,为了搜素引擎收录。

(4)搜索引擎,SEO优化依赖于url路径,好记的url便于支持搜索引擎录入。

3.Rewrite标记
flag规则
last停止当前匹配,并重新发送请求
barek终止匹配,不发送新的请求
redirector临时跳转,关闭nginx请求就不跳转了,302
premanent永久跳转,访问过一次就不会访问原站了,301,第一次请求会保存缓存到浏览器中,通过浏览器缓存跳转
4.修改配置文件,准备代码文件进行测试last与break
[root@Web01 conf.d]# vim rewrite.conf
server {listen 80;server_name rewrite.boss.com;root /code/rewrite/;location / {rewrite /1.html /2.html;rewrite /2.html /3.html;}location /2.html {rewrite /2.html /a.html;}location /3.html {rewrite /3.html /b.html;
"rewrite.conf" 18L, 343C written 
[root@Web01 conf.d]# systemctl restart nginx
[root@Web01 conf.d]# mkdir -p /code/rewrite
[root@Web01 conf.d]# echo 1.html > /code/rewrite/1.html
[root@Web01 conf.d]# echo 2.html > /code/rewrite/2.html
[root@Web01 conf.d]# echo 3.html > /code/rewrite/3.html
[root@Web01 conf.d]# echo a.html > /code/rewrite/a.html
[root@Web01 conf.d]# echo b.html > /code/rewrite/b.html

访问rewrite.boss.com后发现访问1.html,实际重定向到b.html。

5.rewrite添加last标记
[root@Web01 conf.d]# vim rewrite.conf
server {listen 80;server_name rewrite.boss.com;root /code/rewrite/;location / {rewrite /1.html /2.html last;rewrite /2.html /3.html;}location /2.html {rewrite /2.html /a.html;}location /3.html {rewrite /3.html /b.html;
"rewrite.conf" 18L, 348C written 
[root@Web01 conf.d]# systemctl restart nginx

访问发现跳过了当前location,进行下一location重定向,最终跳转到a.html。

6.rewrite添加down标记
[root@Web01 conf.d]# vim rewrite.conf
server {listen 80;server_name rewrite.boss.com;root /code/rewrite/;location / {rewrite /1.html /2.html break;rewrite /2.html /3.html;}location /2.html {rewrite /2.html /a.html;}location /3.html {rewrite /3.html /b.html;
"rewrite.conf" 18L, 349C written 
[root@Web01 conf.d]# systemctl restart nginx

break后不再进行重定向操作,最终定向到2.html。

7.redirect与oermanent测试
[root@Web01 conf.d]# vim rewrite.conf
server {listen 80;server_name rewrite.boss.com;root /code;location /test {#临时重定向rewrite ^(.*)$  http://www.boss.vip redirect;    #return 302 http://www.boss.vip#永久重定向#rewrite ^(.*)$  http://www.boss.vip permanent;  #return 301 http://www.boss.vip;}
}
~                                                  
~                                                  
"rewrite.conf" 12L, 356C written 
[root@Web01 conf.d]# systemctl restart nginx

访问rewrite.boss.com/test,定向到www.boss.vip。

8.rewrite使用案例

(1)开启rewrite日志对规则进行匹配调试

[root@Web01 conf.d]# mkdir -p /code/rewrite/ccc/bbb/
[root@Web01 conf.d]# echo '/ccc/bbb/2.html' > /code/rewrite/ccc/bbb/2.html
[root@Web01 conf.d]# vim rewrite.conf
server {listen 80;server_name rewrite.boss.com;root /code/rewrite;location /abc {rewrite (.*) /ccc/bbb/2.html redirect;#return 302 /ccc/bbb/2.html}
}
~                                                  
~                                                  
~                                                  
~                                                  
~                                                  
"rewrite.conf" 10L, 217C written 
[root@Web01 conf.d]# systemctl restart nginx

(2)用户访问/2018/ccc/bbb/2.html实际上真实访问的是/2023/ccc/bbb.2.html

[root@Web01 conf.d]# mkdir -p /code/rewrite/2023/ccc/bbb/
[root@Web01 conf.d]# echo '/2023/ccc/bbb/2.html' > /code/rewrite/2023/ccc/bbb/2.html
[root@Web01 conf.d]# vim rewrite.conf
server {listen 80;server_name rewrite.boss.com;root /code/rewrite;location /2018 {rewrite ^/2018/(.*) /2023/$1 redirect;}
}
~                                                  
~                                                  
~                                                  
~                                                  
~                                                  
~                                                  
"rewrite.conf" 9L, 188C written  
[root@Web01 conf.d]# systemctl restart nginx

(3)用户访问/test实际上访问的是https://www.boss.vip

[root@Web01 conf.d]# vim rewrite.conf
server {listen 80;server_name rewrite.boss.com;location /test {rewrite (.*) https://www.boss.vip redirect;}
}
~                                                  
~                                                  
~                                                  
~                                                  
~                                                  
~                                                  
~                                                  
"rewrite.conf" 8L, 154C written
[root@Web01 conf.d]# systemctl restart nginx


http://www.ppmy.cn/news/1551822.html

相关文章

iptables 用于设置、维护和检查 IP 数据包的过滤规则。其基本用法是通过命令行界面配置流量的过滤策略,分为以下几类规则链:INPUT(入站流量)、OU

iptables 是 Linux 下的一个强大的防火墙工具,用于设置、维护和检查 IP 数据包的过滤规则。其基本用法是通过命令行界面配置流量的过滤策略,分为以下几类规则链:INPUT(入站流量)、OUTPUT(出站流量&#xff…

Java算法OJ(11)双指针练习

目录 1.前言 2.正文 2.1存在重复数字 2.1.1题目 2.1.2解法一代码 解析: 2.1.3解法二代码 解析: 2.2存在重复数字plus 2.2.1题目 2.2.2代码 2.2.3解析 3.小结 1.前言 哈喽大家好吖,今天来给大家分享双指针算法的相关练习&…

Secured Finance与GLIF建立战略合作关系,为Filecoin FVM赋能

“DeFi 巨头强强联合增强流动性质押,并开启全新收益机会。” Secured Finance 是一个专注于促进固定收益市场和跨链借贷服务的 DeFi 协议,允许用户在多个区块链生态系统之间高效、安全地执行借贷、债券交易和利率互换等金融操作。通过智能合约和去中心化…

构建Ceph分布式文件共享系统:手动部署指南

#作者:西门吹雪 文章目录 micro-Services-TutorialCeph分布式文件共享方案部署Ceph集群使用CephCeph在kubernetes集群中的使用 micro-Services-Tutorial 微服务最早由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应…

网工日记:NAT相关概念

NAT(Network Address Translation)即网络地址转换,是一种在 IP 网络中广泛应用的技术,用于解决 IP 地址短缺问题以及增强网络安全性。以下是详细内容: 一、NAT 的产生背景 随着互联网的飞速发展,可用的公…

MFC 分段记录时间log类

在开发大型自动化系统或者多线程应用时,日志记录和时间追踪通常是系统调试和性能优化的关键部分。CAuxiliary 类是一个封装了文件日志记录和高精度计时功能的实用工具类,旨在为开发人员提供一种简便的方式,来实现系统运行的日志记录和时间性能…

Oracle--表空间Tablespace

在 Oracle 数据库中,表空间(Tablespace) 是一种逻辑存储结构,用于组织和管理数据库中物理存储数据文件的方式。以下是表空间相关操作的详细介绍,包括创建、修改、删除、查询以及常见问题处理。 1. 表空间的作用 提供逻…

MySQL 数据库学习教程一:开启数据库探索之旅

在当今数字化时代,数据已然成为企业和组织最为宝贵的资产之一。而数据库管理系统则是存储、管理和操作这些数据的核心工具。MySQL 作为一款广泛应用的开源关系型数据库管理系统,以其可靠性、高性能和易用性而备受青睐。如果你渴望踏入数据库领域&#xf…