cloudflare 域名无法绑定问题【已废弃】
【已废弃】使用cf,添加域名的时候报错的问题
说明【已废弃】
!!!!重要:Fecify-3.0版本之后,进行了升级,强烈建议使用自动化的方式配置cloudflare:【最佳实践】-CloudFlare-【最佳实践】
重要:【已废弃】本文是Fecify-2.0的配置方式,出错的问题排查,忽略即可。Fecify-3.0版本之后,不要看本文。
情况1【已废弃】
一:问题报错:域名已经存在,请使用其他的域名
问题描述:用户在店铺A(商家端后台,),将店铺域名设置为:www.mybestlive.com
,然后进行了删除,改成:shop.mybestlive.com
。然后用户进入店铺B,将域名设置为:www.mybestlive.com
,出现报错:
回答:在商家端后台,进行域名设置,一个域名,只支持使用一次,因为shop.mybestlive.com
对应的根域名是mybestlive.com
, 而 www.mybestlive.com
对应的根域名也是mybestlive.com
,因此,他们属于同一个域名,因此不支持。
为什么要做这个限制?因为:
- 1.免费版CF的page rule只有3条,仅够一个域名使用。当
shop.mybestlive.com
使用后,已经占满,因此报错。 - 2.缓存规则(cache rule)的问题,因为fecify的多货币是基于cookie的,而cf不支持将cookie作为缓存key(企业版cf支持,但是贵死),因此如果您的B2C是多个店铺,每个店铺的默认货币不同,就会导致缓存有问题
问题:如果我必须这样呢?我就是想一个店铺用:www.mybestlive.com
,一个店铺用shop.mybestlive.com
?
回复:这样用,只能有一个域名可以使用cf的缓存,另外一个域名将无法使用cf的页面缓存。设置方式如下:
1.在店铺A的商家端后台,将店铺域名设置为www.mybestlive.com
,该域名是可以使用缓存的,也就是功能最全面的
2.进入服务端后台,在店铺管理部分,打开店铺B的详情,在这里设置店铺域名为shop.mybestlive.com
,在服务端后台设置的域名,将不可以使用cf的缓存。
另外,需要注意的是,这里说的不使用缓存,指的是页面缓存
,上面的域名shop.mybestlive.com
的页面缓存将不可用,但是,对于js,css,以及图片等文件缓存,还是可以使用的。
问题:如果我是cf的pro版本,服务端后台设置店铺域名为shop.mybestlive.com
后,我是否可以手动去添加page rule
规则,让其支持多个子域名,让其支持页面缓存?
回复:cf的页面缓存规则(cache rule),因为fecify的多货币是基于cookie的,而cf不支持将cookie作为缓存key(企业版cf支持,但是贵死),
因此对于非店铺默认货币
(譬如:店铺的默认缓存是USD,用户在前台商城切换货币为EUR货币),将绕过页面缓存
(您可以在cache rules里面看到有一条规则,用户切换为EUR货币
,将绕过cf的页面缓存)。
因此如果您的多个子域名对应的店铺的默认货币不同,那么就会出问题。因此如果您的多个子域名对应的店铺的默认货币相同,那么就没问题。
对于这种情况,其他的子域名,您需要手动去设置page rules(参看手动设置cf的文档:cloudflare 配置全站缓存)。
而且,您的一个站点刷新缓存(在www.mybestlive.com
对应的商家端后台操作刷新CF缓存),那么其他的子域名对应的站点的缓存也将会被刷新。
问题:如果我是的cf的免费版本,服务端后台设置店铺域名为shop.mybestlive.com
后,我是否有办法让其支持多个子域名?让其支持页面缓存
回复:可以,和上面的问题回复类似,您需要保证您的多个子域名对应的店铺的默认货币相同,譬如都是美元。
和上面的步骤类似,商家端后台域名设置www.mybestlive.com
, 然后,服务端后台设置其他子域作为店铺域名shop.mybestlive.com
。然后,您需要您需要手动操作,进入cf的操作后台
可以看到2行www.mybestlive.com
域名对应的规则,点击上面的按钮进行编辑,将其改成范域名的格式
改完后:
这样就可以了。需要注意的是,在商家端后台不要重新操作域名设置,否则会报错。
上面的这几种情况,都是尽大话的满足用户,但是,需要您仔细看清楚上面的逻辑,明白原理,才可以操作。操作完成后,反复验证一下缓存问题,切换货币的问题等等,以免出问题。 我们是不建议用户操作这些的,除非您的需求非常特殊,那么您需要仔细看一下上面的文档,琢磨清楚cf的原理,再操作。
二:域名更改后,创建301报错
报错详细:
cloudflare create page rule 301 fail | Client error: `POST https://api.cloudflare.com/client/v4/zones/cbfe3009227c090c418f1727ac872d18/pagerules` resulted in a `400 Bad Request` response: {"success":false,"errors":[{"code":1008,"message":"Page Rule limit has been met"}],"messages":[],"result":null}
解决:将page rules进行删除(全部删除即可)
然后刷新页面(fecify域名绑定页面),重新绑定即可。