[关闭]
@upyun 2017-04-12T08:19:54.000000Z 字数 1670 阅读 1073

Rewrite基础详解

Rewrite


功能介绍
自定义 rewrite 是基于 DSL ( Domain Specific Language ) 理念来设计的,主要面向开发者使用。充分利用又拍云 CDN ( Content Delivery Network )分布式边缘网络的性能及规模,通过又拍云管理控制台可轻松创建 rewrite 规则,规则支持函数、变量、字符串常量,用户可以将这些自由组合,可以实现对 URL 的改写、重定向、自定义 HTTP 头、请求禁止等处理逻辑。

URL的组成格式

统一资源定位器(URL)是用于完整地描述Internet上网页和其他资源的地址的一种标识方法。URL的一般格式为(带方括号[]的为可选项):
protocol :// hostname[:port] / path / [;parameters][?query]#fragment

实例说明:
http://m.weibo.cn/status/4095687660578876?wm=3333_2001
(今日微博最热视频)

字段 URL对应
protocol http
hostname m.weibo.cn
path /status/4095687660578876
query wm=3333_2001

注意:query ,不带前缀 '?' 。

Rewrite规则说明

为了更好的理解 rewrite 规则,本节围绕 rewrite 规则配置项和规则示例来进行详细说明,先来了解下配置截图,如下截图所示:
此处输入图片的描述

字段详解
配置一条完整的 rewrite 规则需要完成 Rewrite 规则 、URI 提取正则 、break 、调试模式 、备注 这 5 个选项的配置。
其中 Rewrite 规则 为必填项,URI 提取正则和备注为可填项,break 和调试模式为控制开关,可根据需要来进行开启和关闭。

字段 必选 说明
Rewrite 规则 rewrite 规则主要组成部分,代表最终的处理逻辑。
URI 提取正则 为对当前请求 URI 进 匹 配的 PCRE 正则表达式,匹配后,产 2 ... 这样 的变
break 开启或关闭 开启表示 rewrite 成功后终止剩下的的 rewrite 过程
调试模式 开启或关闭 一个调试开关,默认开启
备注 描述该规则的用途

Rewrite 调试模式
由于 rewrite 过程会对当前请求产生副作用,这是非常危险的,所以我们引入调试模式。调试模式仅对 URL 的修改进行保护,响应头/请求头等修改无视调试模式。

使用命令行工具 curl 即可对规则调试:

curl -H "X-Upyun-Rewrite-Preview: true" http://your-domain/foo/bar.html -v

规则排序
自定义 Rewrite 功能支持自定义多条规则,请求时按顺序对规则进行匹配,一个请求可命中多条规则。如果检查到有 break 标识且此次 rewrite 成功,则跳出查找,使用此次匹配到的规则;如未找到 break 标识,则用最后一条匹配的规则。

您可以通过点击上下箭头,控制规则的排序。将权重较高的规则排在下方,如下图所示:
此处输入图片的描述
此处输入图片的描述
此外,自定义 Rewrite 功能支持对规则的修改及删除。

注意事项

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注