Nginx规则重写

本文介绍了Nginx的rewrite规则,用于URL重写和跳转,有利于SEO,美化URL,并在网站迁移时保持访问。关键概念包括结尾标识符(如last、break、redirect和permanent)、规则表达式和if指令与全局变量。这些概念帮助理解如何在Nginx配置中实现URL的灵活管理和重定向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nginx rewrite

rewirte规则也称为规则重写,主要功能是实现浏览器访问 Http URL的跳转,其正
则表达式是基于Perl语言。通常而言,几乎所有的Web服务器均可以支持URL重写。
rewrite URL规则重写的用途如下
1、对搜索引擎优化( search engine optimization,SEO)友好,利于搜索引擎抓取网站页面
2、隐藏网站URL真实地址,浏览器显示更加美观;
3、网站更换新域名后,可以基于 rewrite临时重定向到其他页面。
Nginx rewrite规则使用中有3个概念,分别是 rewrite结尾标识符、 rewrite规则常用表
达式、 Nginx rewrite变量,3个概念的详解如下:
(1) Nginx rewrite结尾标识符,用于 rewrite规则末尾,表示规则的执行属性,详解如下:
last:相当于 Apache里的(L)标记,表示完成 rewrite匹配
break:本条规则匹配完成后,终止匹配,不再匹配后面的规则
redirect:返回302临时重定向,浏览器地址会显示跳转后的URL地址。
permanent:返回301永久重定向,浏览器地址栏会显示跳转后的URL地址。
其中last和 break用来实现URL重写时,浏览器地址栏URL.地址不变

(2) Nginx rewrite规则常用表达式,主要用于匹配参数、字符串及过滤设置,详解如下

在这里插入图片描述
(3)if指令与全局变量
1、if判断指令
语法为if(condition){…},对给定的条件condition进行判断。如果为真,大括号内的rewrite指令将被执行,if条件(conditon)可以是如下任何内容:
当表达式只是一个变量时,如果值为空或任何以0开头的字符串都会当做false直接比较变量和内容时,使用=或!=
正则表达式匹配,*不区分大小写的匹配,!~区分大小写的不匹配
-f和!-f用来判断是否存在文件
-d和!-d用来判断是否存在目录
-e和!-e用来判断是否存在文件或目录
-x和!-x用来判断文件是否可执行
2、全局变量
下面是可以用作if判断的全局变量
KaTeX parse error: Expected 'EOF', got '#' at position 8: args : #̲这个变量等于请求行中的参数,同query_string
$content_length : 请求头中的Content-length字段。
$content_type : 请求头中的Content-Type字段。
$document_root : 当前请求在root指令中指定的值。
$host : 请求主机头字段,否则为服务器名称。
$http_user_agent : 客户端agent信息,即用户使用的代理,例如浏览器
$http_cookie : 客户端cookie信息
$limit_rate : 这个变量可以限制连接速率。
$request_method : 客户端请求的动作,通常为GET或POST。
$remote_addr : 客户端的IP地址。
$remote_port : 客户端的端口。
$remote_user : 已经经过Auth Basic Module验证的用户名。
$request_filename : 当前请求的文件路径,由root或alias指令与URI请求生成。
$scheme : HTTP方法(如http,https)。
$server_protocol : 请求使用的协议,通常是HTTP/1.0或HTTP/1.1。
$server_addr : 服务器地址,在完成一次系统调用后可以确定这个值。
$server_name : 服务器名称。
$server_port : 请求到达服务器的端口号。
$request_uri : 包含请求参数的原始URI,不包含主机名,如:”/foo/bar.php?arg=baz”。
uri:不带请求参数的当前URI,uri : 不带请求参数的当前URI,uriURIuri不包含主机名,如”/foo/bar.html”。
documenturi:与document_uri : 与documenturiuri相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值