【Nginx学习总结】6. Nginx的rewrite规则--Nginx URL重写

Nginx URL Rewrite:灵活的 URL 重写与重定向 它常用于静态资源的处理,例如检查文件是否存在,如果不存在,则重写请求到某个页面(通常是首页或错误页面)。Nginx 支持强大的正则表达式匹配功能,可以用来处理更复杂的 URL 重写需求。Nginx 的 **URL 重写(Rewrite)**功能允许你根据请求的 URL 动态地修改请求路径或进行重定向。当请求的文件或页面不存在时,你可能希望将请求重定向到一个自定义的 404 页面或者首页。:新的 URL,符合规则时,Nginx 会将请求的 URL 重写为这个目标。示例:当请求的文件不存在时,重定向到。 阅读详情

一、为什么重写URL

二、URL重写介绍

和apache等web服务软件一样,rewrite的主要功能是实现RUL地址的重定向。

Nginx的rewrite功能需要PCRE软件的支持,即通过perl兼容正则表达式语句进行规则匹配的。默认参数编译nginx就会支持rewrite的模块,但是也必须要PCRE的支持

rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到replacement,结尾是flag标记

三、语法格式与参数

例子

 四、Nginx的URL匹配的常用正则

\

将后面接着的字符标记为一个特殊字符或一个原义字符或一个向后引用。如“\n”匹配一个换行符,而“\$”则匹配“$”

^

匹配输入字符串的起始位置

$

匹配输入字符串的结束位置

*

匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll”

+

匹配前面的字符一次或多次。如“ol+”能匹配“ol”及“oll”、“oll”,但不能匹配“o”

?

匹配前面的字符零次或一次,例如“do(es)?”能匹配“do”或者“does”,"?"等效于"{0,1}"

.

匹配除“\n”之外的任何单个字符,若要匹配包括“\n”在内的任意字符,请使用诸如“[.\n]”之类的模式。

(pattern)

匹配括号内pattern并可以在后面获取对应的匹配,常用$0...$9属性获取小括号中的匹配内容,要匹配圆括号字符需要\(Content\)

【提示】$1获取正则的第一个括号里面匹配的内容,$2获取正则的第二个括号里面匹配的内容,以此类推!

 

五、rewrite企业应用场景

Nginx的rewrite功能在企业里应用非常广泛:

(1) 可以调整用户浏览的URL,看起来更规范,合乎开发及产品人员的需求。

(2)为了让搜索引擎搜录网站内容及用户体验更好,企业会将动态URL地址伪装成静态地址提供服务。

(3)网址换新域名后,让旧的访问跳转到新的域名上。例如,访问京东的360buy.com会跳转到jd.com

(4)根据特殊变量、目录、客户端的信息进行URL调整等

六、样例演示

例一:用户访问pzz.com,想直接跳转到网站下面的pzz.com/pzz.html 

1. 编辑/usr/local/nginx/conf/nginx.conf配置文件

2. 在/var/www/html 目录下创建pzz.html

vim /var/www/html/pzz.html

<html>
 <body>
  <h1> pzz is good </h1>
 </body>
</html>

 

3. 在hosts文件里面追加映射:

     

    192.168.216.137 pzz.com

4. 重启Nginx服务:

cd /usr/local/nginx/sbin

./nginx -s stop

./nginx

5.  测试:

打开谷歌浏览器输入pzz.com

6. URL地址不变

可以看到测试成功了!我们访问的是pzz.com,结果跳转到了pzz.com/pzz.html,并且页面正确显示了内容!

(1)若是想要跳转到pzz.com/pzz.html界面,但是url不变,可以做下面的配置

(2)重启nginx服务,清除浏览器缓存,测试:

7. 访问多级目录

若是我们要访问二级目录或是三级目录,上面的配置满足不了。见下图

我们想要实现上述需求,怎么处理呢?

(1)配置文件

(2)在/var/www/html 下创建2个文件夹test1,test2,把index1.html拷贝到test1,index2.html拷贝到test2中

(3)重启nginx服务,测试

打开谷歌浏览器,输入pzz.com/a/test1

回车显示

 

 

输入pzz.com/a/test2

 

例二 多个域名访问跳转到同一个域名 

可以在hosts文件里面写入一个ip对应多个域名,但是会影响网站的权重!我们不这么做,采用下面的方式。

1. 编辑配置文件

2. 在hosts文件里面添加映射

   

   192.168.216.137 pzz11.com pzz12.com pzz13.com

 

3. 重启nginx

测试:

打开谷歌浏览器,输入pzz11.com/index1.com 或是 pzz12.com/index1.com 或是pzz13.com/index1.com

可以看到实现了多个域名访问跳转到一个域名

 

例三:拓展

 输入pzz.com,跳转到www.pzz.com ! 例如百度、京东什么的都是这样处理

浏览器输入

回车显示

这个我们怎么实现呢?

与例子2的配置文件大同小异

打开浏览器访问abc.com

页面打开后,URL地址栏的abc.com变成了www.abc.com说明URL重写成功。

强化学习在视觉导航中的应用 强化学习在视觉导航中的应用​ ,人工智能,计算机视觉,大模型,AI,强化学习(Reinforcement Learning, RL)是一种通过智能体(Agent)与环境进行交互,以最大化累积奖励为目标的机器学习范式。它不依赖于预定义的规则或大量标注数据,而是让智能体在试错过程中学习最优策略。计算机视觉(Computer Vision)则赋予智能体 “观察” 环境的能力,使其能够从图像或视频中提取有用信息。 阅读详情

相关推荐

Spacedesk保姆级教程:用旧平板给Windows电脑当副屏,从安装到避坑一步到位

本文提供Spacedesk保姆级教程,教你如何将旧平板变成Windows电脑的副屏,从软件安装到网络配置、显示优化及声音交互,一步步避开常见陷阱。通过WiFi实现扩展屏功能,支持4K分辨率和60Hz刷新率,让闲置设备焕发新生。

weixin_42524945的博客 1万+

nginx上配置二级目录访问vue项目

nginx上配置二级目录访问vue项目

weixin_43790802的博客 1982

《AI应用架构师智能特征工程实践的前沿趋势解读》

面对传统方法的局限性,智能特征工程(Intelligent Feature Engineering)应运而生。智能特征工程是指利用人工智能、机器学习和自动化技术,实现特征提取、构造、选择和优化过程的自动化、智能化和可扩展化的方法和技术体系。效率提升:将数据科学家从繁琐的人工特征工程中解放出来,大幅缩短特征开发周期。质量保障:通过系统化方法发现人类难以察觉的特征模式,提高特征质量和模型性能。可扩展性:能够处理大规模、高维度和多类型的数据,适应不同领域和场景。降低门槛。

大数据洞察的博客 1181

Nginx配置:通过配置二级目录实现访问不同项目

在conf/nginx.conf文件中配置:通过配置二级目录实现访问不同项目 配置真实服务访问路径 http{ #第一个项目:用两个端口,其两个服务,用于负载 upstream shopping { server localhost:8080; server localhost:8088; } #第二个项目:nginx配置通过项目名访问不同项目 upstream mall { server localhost:9999;..

chenguixu的博客 3745

基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置

ProxmoxVE是一款套开源的虚拟化管理软件,用户可通过网页的方式来管理服务器上使用kvm以及lxc技术运行的虚拟机。同时提供了一些先进功能的支持,如集群、HA等。PVE虽然是开源,却是由一个商业公司在运营、更新以及维护。...

隔壁老瓦的专栏 6321

不止于连接:用VS Code Remote-SSH深度开发树莓派(Ubuntu 22.04环境实战)

本文详细介绍了如何在Ubuntu 22.04环境下使用VS Code的Remote-SSH功能进行树莓派深度开发。通过SSH配置、VS Code扩展安装和远程环境优化,开发者可以在本地高效编写代码,同时在树莓派上直接运行和测试,解决性能瓶颈问题。文章还提供了高级功能如端口转发、多项目管理和远程调试的实战技巧。

didui8202的博客 352

nginx配置二级目录访问tomcat

之前没有接触过nginx,但公司运维出现问题,于是由我来修改nginx配置文件,添加二级目录来访问tomcat下的项目。推荐博客:https://blog.csdn.net/daybreak1209/article/details/51549031来了解nginx一、nginx下载与启动在官网http://nginx.org/en/download.html下载nginx下载完成后解压即可。进去根...

林海静的博客 6797

硬件基础知识-电机知识

步进电机存在空载启动频率,所以步进电机可以低速正常运转,但若高于一定速度时就无法启动,并伴有尖锐的啸叫声;在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数。给电机两根线供电,电机就可以旋转,给正电压,电机正转,给相反电压,电机反转;电压越大,电机转得越快,电压越小,转速也变小。是一种直流电机,有刷电机的定子上安装有固定的主磁极和电刷,转子上安装有电枢绕组和换向器。控制器:使用专用的电子控制器来监测和控制电机的转速、电流和方向。线圈电流方向的交替变化是随电机转动的换相器和电刷来完成的。

weixin_46969363的博客 2297

Nginx 部署 Vue 项目到 二级目录

1、vue.config.js module.exports = { publicPath: '/rm/', 2、路由下index.js const router = new VueRouter({ base: '/rm/', }) 3、Dockerfile # 導入nginx镜像 # FROM nginx:1.13.7 # FROM nginx:1.15.1 FROM nginx:1.15.1-alpine USER root MAINTAINER Howard <howar.

一直被模仿,从未被超越 4920

Python高阶爬虫:逆向工程模拟Wind/同花顺等金融终端数据抓取

本文详细阐述了模拟金融数据终端进行数据抓取的全套技术方案。我们从法律合规性讲起,选择了Playwright作为核心自动化工具,通过两个实战案例(同花顺网页版和Wind桌面版)演示了从分析、模拟到数据解析的完整流程,并进一步介绍了构建健壮爬虫系统所需的高级技巧。我们的策略是:启动一个由Playwright控制的浏览器,模拟真人登录,然后监听所有网络请求,从中过滤出我们需要的那个数据API。if key in ['f43', 'f169', 'f170', 'f46', 'f60']: # 价格类字段。

2201_76125261的博客 546

《Python基础教程》专栏总结篇

今天给大家带来的文章是《Python基础教程》专栏总结篇,希望能对同学们有所帮助。 文章目录 1. 背景 2. 专栏亮点 3. 你的收获 4. 详细目录

weixin_43178406的博客 73万+

nginx rewrite重定向访问本地其它目录,并且保留请求的地址和端口

背景 通过k8s访问http://192.168.1.2:32156/devops/index.html需跳转到http://192.168.1.2:32156/jenkins/ 配置文件 location = /devops/index.html { rewrite ^ $scheme://$http_host/jenkins/ permanent; } location = /jenkins/ { root /usr/share/nginx/html; index /jen

运维@小兵的博客 4289

飞牛fnNAS搭建web版微信

摘要:本文介绍了一种通过Docker在飞牛NAS上部署微信客户端的方法,实现24小时同步微信聊天记录。具体步骤包括:1)激活飞牛NAS的Docker功能并配置镜像加速源;2)创建专用文件夹并下载docker-wechat镜像;3)设置容器参数并部署微信客户端;4)通过局域网或ZeroTier内网穿透实现远程访问。相比传统Windows/Linux方案,该方法资源占用更低,适合需要长期保存微信聊天记录的用户。

dgnankai的专栏 3337

Nginx之rewrite重写功能

访问重写 rewrite 是 Nginx HTTP 请求处理过程中的一个重要功能,它是以模块的形式存在于代码中的,其功能是对用户请求的 URI 进行 PCRE 正则重写,然后返回 30× 重定向跳转或按条件执行相关配置。

m0_74824661的博客 4606

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

nginx rewrite(nginx url地址重写)

本文介绍下,在nginx中配置url地址重写的方法,有需要的朋友参考下。 在nginx中,Rewrite用来实现URL的重写,Nginx的Rewrite规则采用Pcre,perl兼容正则表达式的语法规则匹配,如果需要Nginx的Rewrite功能,在编译Nginx之前,需要编译安装PCRE库。 先来熟悉下,nginx中的if指令。 规则语法:    复制代码代码示例:

toplover2的linux学习博客 3330

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Nginx中location规则与rewrite重写

使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标记位实现URL重写以及重定向。比如:更换域名后需要保持旧的域名能跳转到新的域名上、某网页发生改变需要跳转到新的页面、网站防盗链等等需求。rewrite只能放在server{},location{},if{}中,并且默认只能对域名后边的除去传递的参数外的字符串起作用,例如 http://www.xy101.com/abc/bbs/index.php?a=1&b=2 只对/abc/bbs/index.php重写。

qq_54188720的博客 1426

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Nginx中location规则 与 URL重写(rewrite)详解

URL重写 rerwite重写 前缀匹配 location匹配 基于域名跳转

zhangchang3的博客 4524

Nginx URL重写(rewrite)详解

Nginx URL重写(rewrite)介绍 和apache等web服务软件一样,rewrite的组要功能是实现RUL地址的重定向。Nginx的rewrite功能需要PCRE软件的支持,即通过perl兼容正则表达式语句进行规则匹配的。默认参数编译nginx就会支持rewrite的模块,但是也必须要PCRE的支持 rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到replacement,结尾是flag标记。 rewrite语法格式及参数语法说明如下:...

tojinzi的博客 2万+

Nginx地址重写——Rewrite

在实际工作中往往会遇到很多跳转(重写URL)的需求。比如:更换域名后需要保持旧的域名能够跳转到新的域名上、某网页发生改变需要跳转到新的页面、网站防盗链等等需求,使用Nginx跳转效率会更高。

weixin_73059729的博客 3424

nginx rewrite重写规则

本文提供一些常用的rewrite重写规则,用来美化网页的链接。规则里面的$1$2你不知道是怎么来的话,只要记住,第一个()里面的是$1,第二个()里面的是$2. 请求的URL是给人看的,重写后的URL是给电脑看的。 执行搜索 这个规则的目的是为了执行搜索,搜索URL中包含的关键字。 请求的URL//hqidi.com/search/some-search-keywords 重写后URL...

Linux中文社区 1617

nginx-URL重写rewrite规则

rewite规则 语法:rewrite regex replacement flag;,如: rewrite ^/images/(.*.jpg)$ /imgs/$1 break; 此处的$1用于引用(.*.jpg)匹配到的内容,又如: rewrite ^/bbs/(.*)$ http://www.idfsoft.com/index.html redirect; 如上例所示,replacement可以是某个路径,也可以是某个URL 常见的flag flag 作用 last 基本上都用这

aleihello的博客 646
上一篇: 【Nginx学习总结】5. Nginx+Tomcat 的动静分离
下一篇: 【Nginx学习总结】7. Nginx rewrite模块深入浅出
Rita楠神
博客等级 码龄9年 27粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值