网站首页 > 技术教程 正文
为了能够在修改网站结构或域名后,避免造成网站中的链接或在其他网站中的外链失效,已经提高网站在搜索引擎的收录量和排名等目的,通常会采用url重写与重定向,在增强网站专业化的同时,为用户提供更加舒适的使用体验。
1、rewrite模块的介绍
重写与重定向功能是现在大多数Web服务器都支持的一项功能,相对于其他产品而言,Nginx中的rewrite模块提供的功能在配置上更加灵活自由,可定制性非常高,它的实现方式简单,只需要通过rewrite指令根据Nginx提供的全局变量或自定义的变量,结合正则表达式已经进一步处理的标识就可以完成url重写或重定向。
2、rewrite实现重写
rewrite指令基本语法:
rewrite regex replacement [flag];
flag可选参数值:
last:终止rewrite,继续匹配其他规则;
break:终止rewrite,不再继续匹配;
redirect:临时重定向,返回的HTTP状态码为302;
permanent:永久重定向,返回的HTTP状态码为301;
当flag值为last或break时,表示当前的设置为重写,当flag的值为redirect或permanent时表示重定向;
2.1、添加rewrite指令
if与括号有空格,!-e与$request_filename有空格;
!-e用于判断不存在指定的文件或目录时,执行if块内的语句,内置变量$request_filename表示当前请求的文件路径;
^/.*用于匹配当前网站下的所有请求;
/default/default.html用于替换符合指定规则的请求;
if指令判断符号:
=:判断变量与内容相同;
!=:判断变量与内容不等;
~:区分大小写正则匹配;
~*:不区分大小写正则匹配;
!~:区分大小写正则不匹配;
!~*:不区分大小写正则不匹配;
-f:判断文件存在;
!-f:判断文件不存在;
-d:判断目录存在;
!-d:判断目录不存在;
-e:判断文件或目录存在;
!-e:判断文件或目录不存在;
-x:判断可执行文件;
!-x:判断不可执行文件;
测试验证:
在网站根目录下创建default目录,并在改目录下编写default.html文件:
重启访问一个不存在的文件
2.2、break和last标识的区别
在使用rewrite实现重写时,需要注意flag可选参数值break和last的区别,前者在rewrite指令匹配成功后就不再进行匹配,而 后者在rewrite后会根据rewrite匹配的规则重新发起一个请求继续进行匹配。
设置匹配规则:
重启访问
3、rewrite实现重定向
rewrite的重定向就是将用户访问的url修改为重定向的地址,只需将flag的可选参数值设置为redirect或permanent即可实现。
利用set指令为变量$name赋值,$1表示符合正则表达式第一个字模式的值,子模式([0-9]+)匹配到的值;
用户请求http://test.ng.test/img-数字.jpg时,重定向到http://test.ng.test/img/数字.jpg;
猜你喜欢
- 2024-09-09 「Nginx」Web/代理服务器的瑞士军刀:重写与定位
- 2024-09-09 ingress-nginx常用注解指南(nginx详细讲解)
- 2024-09-09 Nginx反向代理常用配置(nginx反向代理设置)
- 2024-09-09 nginx+springboot使用https重定向的解决办法
- 2024-09-09 Nginx从0基础到进阶实战!运维工程师必看
- 2024-09-09 深度|掌握Nginx监控运维,这一篇足矣!
- 2024-09-09 详解nginx配置location总结及rewrite规则写法
- 2024-09-09 nginx 使用技巧配置(nginx 配置详解)
- 2024-09-09 nginx之Rewrite实战(nginx rewrite_by_lua)
- 2024-09-09 详解 Nginx配置静态内容服务器|附案例说明
你 发表评论:
欢迎- 最近发表
-
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- linux移植(Linux移植freemodbus)
- 独家解读:Win10预览版9879为何无法识别硬盘
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
- Docker镜像瘦身(docker 减小镜像大小)
- 在linux上安装ollama(linux安装locale)
- 渗透测试系统Kali推出Docker镜像(kali linux渗透测试技术详解pdf)
- Linux环境中部署Harbor私有镜像仓库
- linux之间传文件命令之Rsync傻瓜式教程
- 解决ollama在linux中安装或升级时,通过国内镜像缩短安装时长
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)