又拍云 rewrite 规则的使用

又拍云提供了非常灵活的rewrite 配置,通过 rewrite,我们可以对存储或 CDN 内的资源做很多策略或限制等等。
具体的可以参考文档:http://docs.upyun.com/cdn/rewrite/

那么关于语法之类的,大家可以查看官网的文档,写的比较详细。我这里主要写下日常的一些常见的配置

如何配置

后台选择服务-找到你需要配置的服务,点击配置

然后选择高级功能

找到自定义 rewrite,点击后面的管理

然后选择开启

然后点击添加规则,所有的规则,都在这里写,写完之后勾选调试模式,然后保存

比如我这里有一个需求,我希望所有访问www.awen.me这个域名都跳转到awen.me(前提是你这2个域名都已经绑定在你配置 rewrite 规则的对应服务下)

那么我们可以这样写,这句表示,判断请求的 host 是否是 www.awen.me,通过 $EQ去判断$_HOST的值是否与www.awen.me相等。如果相同则执行后面的$REDIRECT 是重定向,意思是说把这个请求重定向到https://awen.me 去,301是重定向的 HTTP 状态码。

$WHEN($EQ($_HOST, 'www.awen.me'))$REDIRECT(https://awen.me, 301)

因为这个 rewrite 是针对整个域名下所有的资源的,所有我们只需要填写 rewrite 规则,正则就不需要填了。

使用前必读:
Rewrite 规则书写不当,可能会产生副作用,强烈建议您在开启调试模式后使用命令行工具 curl 对规则调试,查看 Rewrite 后的结果:
curl -H “X-Upyun-Rewrite-Preview: true” http://your-domain/foo/bar.html -v
关闭调试模式后 Rewrite 将正式生效!

比如,我上面配置的是测试301调整是否正常,那么我们可以使用如下命令

curl -H "X-Upyun-Rewrite-Preview: true" https://www.awen.me -v

去测试是否跳转,如果成功后,则去后台关闭调试模式,就可以使用浏览器正常访问啦。

一些常见的 rewrite 案例

可以参考又拍云官网的案例https://docs.upyun.com/cdn/rewrite/#_15

视频教程

如果你是新手,推荐看下这个视频,会加深你对 rewrite 的理解