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. 本专栏 “食用” 指南——写在一周年之际⭐
创建时间:2025-01-27 首发时间:2025-01-29 最后编辑时间:2025-01-29 作者:Geeker_LStar 你好呀~这里是 Geeker_LStar 的人工智能学习专栏,很高兴遇见你~ 我是 Geeker_LStar,一名高一学生,热爱计…...
虚幻基础11:坐标计算旋转计算
能帮到你的话,就给个赞吧 😘 文章目录 坐标line startget actor rotationget forward vector 旋转计算 坐标 ue中通常使用向量计算坐标。 line start 起始坐标点。 get actor rotation 获取旋转值: 当前角色朝向 get forward vector 获…...
Rust:Rhai脚本编程示例
当然,以下是一个简单的Rhai脚本编程示例,展示了如何在Rust中使用Rhai执行脚本。 首先,你需要确保你的Rust项目中包含了rhai库。你可以在你的Cargo.toml文件中添加以下依赖项: [dependencies] rhai "0.19" # 请检查最…...
关于el-table翻页后序号列递增的组件封装
需求说明: 项目中经常会用到的一个场景,表格第一列显示序号(1、2、3...),但是在翻页后要递增显示序号,例如10、11、12(假设一页显示10条数据),针对这种情况,封…...

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

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

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

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

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

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

54.数字翻译成字符串的可能性|Marscode AI刷题
1.题目 问题描述 小M获得了一个任务,需要将数字翻译成字符串。翻译规则是:0对应"a",1对应"b",依此类推直到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 题目描述及链接 原题链接:203. 移除链表…...
【Linux】统计文本中每行指定位置出现的字符串的次数
统计文本中每行指定位置出现的字符串的次数 假定情景 某些项目,会把某个特定事件记录到Log中并且落盘(保持到硬盘)。基于落盘后的日志,要统计这些日志里产生该特定事件的次数 统计脚本 可以写一个sh脚本,来解析某个…...

【赵渝强老师】K8s中Pod探针的ExecAction
在K8s集群中,当Pod处于运行状态时,kubelet通过使用探针(Probe)对容器的健康状态执行检查和诊断。K8s支持三种不同类型的探针,分别是:livenessProbe(存活探针)、readinessProbe&#…...

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

Redis实战(黑马点评)——redis存储地理信息、位图、HyperLogLog 用法
Redis存储geo数据类型基本介绍 geo 就是 geolocation 的简写形式,代表地理坐标。redis 在 3.2 版本中加入了对 geo 的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据。常见的命令有: geoadd:添加一个地理空…...
判断1到100之间有多少个素数,并输出所有的素数。
def is_prime(num): #判断一个数是否素数if num<1:return False #因为1和负数都不是素数for i in range(2,int(num**0.5)1): #从2开始到根号num的整数结束,因为一个数num不是素数,那么把必定有一个小于或等于根号num的因素if num%i0:return False #如…...

JAVA:利用 Content Negotiation 实现多样式响应格式的技术指南
1、简述 Content Negotiation(内容协商) 是 RESTful 服务的重要特性,允许客户端和服务器根据请求的不同特性动态选择适合的响应格式。它是一种在 HTTP 协议中实现的机制,通过它,服务器能够根据客户端需求返回适合的内…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...

10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...