当前位置: 首页 > news >正文

rewrite规则

NGINX 中 rewrite最后的标记含义:
flag标记有:

last 相当于Apache里的[L]标记,表示完成rewrite,匹配完,再向下匹配。地址栏会显示跳转后的地址
break 终止匹配, 不再匹配后面的rewrite规则,地址栏会显示跳转后的地址
redirect 返回302临时重定向,地址栏会显示跳转后的URL
permanent 返回301永久重定向,无论是301跳转还是302跳转地址栏都会显示跳转后的URL

DNSPOD中显性URL 和 隐形URL区别 :
1. 显性URL:访问 aa 能看到地址栏显示bb,同时页面发生改变。
2. 隐形URL:访问 aa 地址栏还是显示aa,同时页面发生改变。

如果想实现访问www.aaa.com 跳转后还是www.aaa.com 同时页面展示的是www.bbb.com可以通过反向代理实现,或通过DNSPOD实现

1、rewrite配置

(1) 访问 bbs.etiantian.org或bbs.etiantian.org/(.*)  跳转到 www.baidu.com
[root@WEB extra]# cat bbs.confserver {listen       80;server_name  bbs.etiantian.org;location / {root  html/www;index index.html;}rewrite ^/      http://www.baidu.com/  permanent;            }
解释:当匹配www.etiantian.org 或 www.etiantian.org/(.*)时,则跳转到www.baidu.com (2) 访问 bbs.etiantian.org或bbs.etiantian.org/(.*)  跳转到 www.baidu.com/bbs/
server {listen       80;server_name  bbs.etiantian.org;location / {root  html/www;index index.html;}rewrite ^/      http://www.baidu.com/bbs/   permanent;            }当匹配www.etiantian.org 或 www.etiantian.org 下的任意内容时,则跳转到 www.baidu.com/bbs/(3) 访问 bbs.etiantian.org/bbs/或 bbs.etiantian.org/bbs/(.*)  跳转到 www.baidu.com/bbs/
server {listen       80;server_name  bbs.etiantian.org;location / {root  html/www;index index.html;}rewrite ^/bbs      http://www.baidu.com/bbs/   permanent;            }
当访问 bbs.etiantian.org/bbs 或 bbs.etiantian.org/bbs/ 或 bbs.etiantian.org/bbs/(.*)  跳转到 www.baidu.com/bbs/(4) 访问 bbs.etiantian.org/bbs/(.*)  跳转到 bbs.etiantian.org/www/(.*) 
server {listen       80;server_name  bbs.etiantian.org;location / {root  html/www;index index.html;}rewrite ^/bbs/(.*)      http://bbs.etiantian.org/www/$1   permanent; if ($host = 'www.playyx.com') {    rewrite ^/games/zwx/ http://www.playyx.com/games/blryy/ permanent; }}如果匹配主机头www.playyx.com, 那么当访问www.playyx.com/games/zwx   跳转到 www.playyx.com/games/blryy/
$1=(.*)访问 bbs.etiantian.org/bbs/下的任意内容,跳转到 bbs.etiantian.org/www/下的任意内容
$1=第一个(.*)
$2=第二个(.*)(5) 访问bbs.etiantian.org/下的任意内容时, 跳转到 www.baidu.com/下的任意内容
server {listen       80;server_name  bbs.etiantian.org;location / {root  html/www;index index.html;}rewrite ^/(.*)      http://www.baidu.com/$1  permanent;   }^/(.*)                                                           //bbs.etiantian.org/下的任意内容
http://www.baidu.com/$1                         //www.baidu.com/下的任意内容, $1=(.*)解释:
当访问 bbs.etiantian.org/(.*)   跳转到 www.baidu.com/(.*) (6) 访问bbs.etiantian.org/bbs 跳转到 www.etiantian.org/abcserver {listen       80;server_name  bbs.etiantian.org;location / {root  html/www;index index.html;}rewrite ^/(.*)   http://www.etiantian.org/abc/$1 permanent;
}
解释:
当匹配 bbs.etiantian.org下的任意内容时,则访问  www.etiantian.org/bbs/ 下的任意内容(7) 访问:bbs.etiantian.org/download/(.*)/media/(.*) 时,跳转到:www.etiantian.org/(.*)/mp3/(.*).mp3 
[root@web-31 extra]# cat www.conf server {listen       80;server_name  bbs.etiantian.org;location / {root  html/www;index index.html;}rewrite ^/download/(.*)/media/(.*)$ http://www.etiantian.org/$1/mp3/$2.mp3 last;
}
解释:
当访问:bbs.etiantian.org/download/(.*)/media/(.*) 时,跳转到:www.etiantian.org/(.*)/mp3/(.*).mp3 $1=(/download/.*)=test1
$2=(.*)=test2(8)nginx上配有aaa.example.com的虚拟主机,现在需要将访问http://aaa.example.com/api/x.x/client/的请求转到http://bbb.example.com:8001/api/x.x/client/,bbb.example.com的虚拟主机在另外一台nginx上,其中x.x表示位数不定的版本号,如:1.0或1.20.345都可能。请求转过去要求url保持不变
server {listen 80;server_name aaa.example.com;location / {root /alidata/www/static;index index.html;}rewrite ^/api/(.*)/client/(.*)$  http://bbb.example.com:8001/api/$1/client/$2 permanent;
}

2、某公司线上配置rewrite
(1) nginx主配置文件

# cat /alidata/nginx/conf.d/upstream.conf#反向代理地址池
upstream playyx_com {                      server 10.1.10.10:81;
}server
{listen  80;server_name  ht.playyx.com xl.playyx.com www.rocen.com.cn;location / {include /alidata/nginx/conf.d/go2eu/tupian.conf;              #跳转到rewrite配置文件proxy_pass        http://playyx_com;                          #反向代理指向地址池proxy_next_upstream http_502 http_504 error timeout invalid_header;proxy_set_header   Host             $host;                    # $host表示主机头,也就是被访问域名proxy_set_header   X-Real-IP        $remote_addr;proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;   }location ~* \.(cvs|svn|git|hg|bzr|sql|phar|tpl|sh|log)$ {deny  all;
}location ~* /\.svn/ {deny all;
}
}

相关文章:

rewrite规则

NGINX 中 rewrite最后的标记含义: flag标记有: last 相当于Apache里的[L]标记,表示完成rewrite,匹配完,再向下匹配。地址栏会显示跳转后的地址 break 终止匹配, 不再匹配后面的rewrite规则,地址栏会显示跳…...

Android车机DIY开发之学习篇(七)NDK交叉工具构建

Android车机DIY开发之学习篇(七)NDK交叉工具构建 1.ubuntu安装GCC sudo apt-get update sudo apt-get install gcc g sudo gcc --version sudo g --version 2.测试GCC VSCODE中新建Hello.c编译 #include <stdio.h> int main(void) { printf(“Hello, this is a progr…...

【初/高中生讲机器学习】0. 本专栏 “食用” 指南——写在一周年之际⭐

创建时间&#xff1a;2025-01-27 首发时间&#xff1a;2025-01-29 最后编辑时间&#xff1a;2025-01-29 作者&#xff1a;Geeker_LStar 你好呀~这里是 Geeker_LStar 的人工智能学习专栏&#xff0c;很高兴遇见你~ 我是 Geeker_LStar&#xff0c;一名高一学生&#xff0c;热爱计…...

虚幻基础11:坐标计算旋转计算

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录 坐标line startget actor rotationget forward vector 旋转计算 坐标 ue中通常使用向量计算坐标。 line start 起始坐标点。 get actor rotation 获取旋转值&#xff1a; 当前角色朝向 get forward vector 获…...

Rust:Rhai脚本编程示例

当然&#xff0c;以下是一个简单的Rhai脚本编程示例&#xff0c;展示了如何在Rust中使用Rhai执行脚本。 首先&#xff0c;你需要确保你的Rust项目中包含了rhai库。你可以在你的Cargo.toml文件中添加以下依赖项&#xff1a; [dependencies] rhai "0.19" # 请检查最…...

关于el-table翻页后序号列递增的组件封装

需求说明&#xff1a; 项目中经常会用到的一个场景&#xff0c;表格第一列显示序号&#xff08;1、2、3...&#xff09;&#xff0c;但是在翻页后要递增显示序号&#xff0c;例如10、11、12&#xff08;假设一页显示10条数据&#xff09;&#xff0c;针对这种情况&#xff0c;封…...

【深度学习】softmax回归

softmax回归 回归可以用于预测多少的问题。 比如预测房屋被售出价格&#xff0c;或者棒球队可能获得的胜场数&#xff0c;又或者患者住院的天数。 事实上&#xff0c;我们也对分类问题感兴趣&#xff1a;不是问“多少”&#xff0c;而是问“哪一个”&#xff1a; 某个电子邮…...

设计模式-建造者模式、原型模式

目录 建造者模式 定义 类图 优缺点 角色 建造者模式和工厂模式比较 使用案例 原型模式 定义 类图 优缺点 应用场景 应用类型 浅克隆 深克隆 建造者模式 定义 将一个复杂的对象的构造与它的表示分离&#xff0c;使同样的构建过程可以创建不同的表示&#xff0c;…...

【Redis】List 类型的介绍和常用命令

1. 介绍 Redis 中的 list 相当于顺序表&#xff0c;并且内部更接近于“双端队列”&#xff0c;所以也支持头插和尾插的操作&#xff0c;可以当做队列或者栈来使用&#xff0c;同时也存在下标的概念&#xff0c;不过和 Java 中的下标不同&#xff0c;Redis 支持负数下标&#x…...

三个不推荐使用的线程池

线程池的种类 其实看似这么多的线程池&#xff0c;都离不开ThreadPoolExecutor去创建&#xff0c;只不过他们是简化一些参数 newFixedThreadPool 里面全是核心线程 有资源耗尽的风险&#xff0c;任务队列最大长度为Integer.MAX_VALUE&#xff0c;可能会堆积大量的请求&#xff…...

mybatis(78/134)

前天学了很多&#xff0c;关于java的反射机制&#xff0c;其实跳过了new对象&#xff0c;然后底层生成了字节码&#xff0c;创建了对应的编码。手搓了一遍源码&#xff0c;还是比较复杂的。 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE …...

Progressive Pretext Task Learning for Human Trajectory Prediction | 文献翻译

祥龙回首留胜景&#xff0c;金蛇起舞贺新程。 概述 行人轨迹预测是一项旨在预测行人未来位置的任务&#xff0c;它通常涵盖了从短期到长期的整个时间范围内的轨迹。然而&#xff0c;现有的研究试图通过单一、统一的训练范式来解决整个轨迹预测问题&#xff0c;往往忽视了行人轨…...

54.数字翻译成字符串的可能性|Marscode AI刷题

1.题目 问题描述 小M获得了一个任务&#xff0c;需要将数字翻译成字符串。翻译规则是&#xff1a;0对应"a"&#xff0c;1对应"b"&#xff0c;依此类推直到25对应"z"。一个数字可能有多种翻译方法。小M需要一个程序来计算一个数字有多少种不同的…...

【数据结构】_链表经典算法OJ(力扣版)

目录 1. 移除链表元素 1.1 题目描述及链接 1.2 解题思路 1.3 程序 2. 反转链表 2.1 题目描述及链接 2.2 解题思路 2.3 程序 3. 链表的中间结点 3.1 题目描述及链接 3.2 解题思路 3.3 程序 1. 移除链表元素 1.1 题目描述及链接 原题链接&#xff1a;203. 移除链表…...

【Linux】统计文本中每行指定位置出现的字符串的次数

统计文本中每行指定位置出现的字符串的次数 假定情景 某些项目&#xff0c;会把某个特定事件记录到Log中并且落盘&#xff08;保持到硬盘&#xff09;。基于落盘后的日志&#xff0c;要统计这些日志里产生该特定事件的次数 统计脚本 可以写一个sh脚本&#xff0c;来解析某个…...

【赵渝强老师】K8s中Pod探针的ExecAction

在K8s集群中&#xff0c;当Pod处于运行状态时&#xff0c;kubelet通过使用探针&#xff08;Probe&#xff09;对容器的健康状态执行检查和诊断。K8s支持三种不同类型的探针&#xff0c;分别是&#xff1a;livenessProbe&#xff08;存活探针&#xff09;、readinessProbe&#…...

商品信息管理自动化测试

目录 前言 一、思维导图 二、代码编写 1.在pom.xml文件中添加相关依赖 2.自动化代码编写 三、代码测试 小结 前言 1. 针对商品信息管理项目进行测试&#xff0c;商品信息管理项目主要有商品列表页、部门列表页、员工列表页&#xff0c;主要功能&#xff1a;对商品信息的…...

Redis实战(黑马点评)——redis存储地理信息、位图、HyperLogLog 用法

Redis存储geo数据类型基本介绍 geo 就是 geolocation 的简写形式&#xff0c;代表地理坐标。redis 在 3.2 版本中加入了对 geo 的支持&#xff0c;允许存储地理坐标信息&#xff0c;帮助我们根据经纬度来检索数据。常见的命令有&#xff1a; geoadd&#xff1a;添加一个地理空…...

判断1到100之间有多少个素数,并输出所有的素数。

def is_prime(num): #判断一个数是否素数if num<1:return False #因为1和负数都不是素数for i in range(2,int(num**0.5)1): #从2开始到根号num的整数结束&#xff0c;因为一个数num不是素数&#xff0c;那么把必定有一个小于或等于根号num的因素if num%i0:return False #如…...

JAVA:利用 Content Negotiation 实现多样式响应格式的技术指南

1、简述 Content Negotiation&#xff08;内容协商&#xff09; 是 RESTful 服务的重要特性&#xff0c;允许客户端和服务器根据请求的不同特性动态选择适合的响应格式。它是一种在 HTTP 协议中实现的机制&#xff0c;通过它&#xff0c;服务器能够根据客户端需求返回适合的内…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...