又拍云提供了非常灵活的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 的理解