在又拍云(UPYUN)创建一个新的服务后,又拍云(upyun)会默认为每个服务分配一个默认域名用于站点调试。在站点调试阶段此域名的确可以起到很大的作用,但如果对应服务正式上线后,由于此域名无法删除,所以用户和搜索引擎还可以通过这个域名访问你的站点和服务。也就是说又拍云给你的站点做了一个镜像,从百度搜索结果可以看出,成千上万网站的UPYUN镜像已经被百度收录。

为避免站点被镜像或被搜索引擎收录,我们可以通过UPYUN提供的自定义 Rewrite功能避免通过UPYUN默认域名访问服务资源。具体设置方法如下:
第一步:在UPYUN对应服务的“高级功能”配置选项卡中找到“自定义 Rewrite”功能并开启此功能。

第二步:点击“添加规则”,按照UPYUN添加对应的Rewrite规则。又拍云Rewrite规则编写说明请参看:http://docs.upyun.com/cdn/feature/#rewrite

第三步:填写规则,在Rewrite规则后填写编写好的规则。原理大概是匹配到又拍云默认域名后跳转到指定页面或者返回错误状态码。
参考规则如下:
规则1、匹配到默认域名后,直接返回404 http状态码,并输出一段文字;
- $WHEN($EQ($_HOST, test.b0.upaiyun.com))$EXIT(404,网址错误)
规则2、匹配到默认域名后,直接返回404 http状态码;
- $WHEN($EQ($_HOST, test.b0.upaiyun.com))$EXIT(404)
规则3、匹配到默认域名后,301永久重定向到其他的页面;
- $WHEN($EQ($_HOST, test.b0.upaiyun.com))$REDIRECT(https://www.duoluodeyu.com$_URI, 301)
第四步:又拍云默认为每个规则开启了调试模式,开启调试模式时,规则并未正式生效,你可以通过以下指令查看新设置的Rewrite规则是否正确。如执行后能正常返回错误状态码或301永久重定向则说明Rewrite规则设置正确。如直接关闭“调试模式”,则可跳过此步。
- curl -H "X-Upyun-Rewrite-Preview: true" http://upyun分配给你的默认域名 -v
第五步:关闭调试默认,在正式环境中访问又拍云(UPYUN)分配的默认域名看是否返回错误状态码或者重定向。