在运营网站时,大部分的外贸网站会接入Cloudflare CDN以下简称"CF",为不同地区访问网站进行加速。理论上这确实有效提升了用户体验度以及网站的安全性,但由于CF的防御能力太强,许多网站出现了CAPTCHA验证页面,导致通过验证后,页面依然打开验证页面的情况,通过查看http头部信息发现,CF缓存状态为 “HIT” 命中,也就是说CF缓存了该reCAPTCHA验证页面,从而循环往复的被卡在该验证页面,致使用户无法正常访问网站,尤为重要的是搜索引擎也会收录此页面,导致排名受到了严重影响。
解决此办法的方法在于首先要尽量降低reCAPTCHA验证页面的出现几率,同时要尽可能避免CF缓存该页面。
如何避免网站出现reCAPTCHA验证页面
关闭Rocket Loader按钮,具体路径为Speed ->Settings -> Content Optimization ->Rocket Loader。虽然这个功能会减少站内JS的绘制时间,但许多JS也会因此受到不明原因的影响。
将网站SSL/TLS模式从默认(加密)模式改为灵活,具体路径为SSL/TLS -> Overview ->Configure ->Custom SSL/TLS ->Flexible
补充:在设置为灵活模式之后,有可能会存在CF缓存重定向的可能性,尤其是在源站部署证书之后,这主要是因为灵活模式CF与源站之间采取的是http协议,而服务器部署SSL证书之后,会301重定向任何http协议到https上,从而使CF缓存重定向状态。解决方案是关闭源站强制https按钮,打开CF SSL证书配置页面的强制https按钮,从而使源站与CF之间保持http协议访问畅通,用户与CF之间则采取https模式。添加CF默认的缓存默认文件扩展名模板,并禁用所有其他缓存。之所以写在最后主要是因为其影响非常大,导致例如html/php不在被缓存,虽然这有助于避免recaptcha的出现,但同时会降低加速效果。
避免CF缓存reCAPTCHA验证页面
通过设置相应的缓存规则,可以有效的避免CF缓存reCAPTCHA验证页面,具体方法为,Caching -> Cache Rules -> Create rule ->Custom filter expression ,为了方便设置直接上设置代码 (http.request.uri.path wildcard r"/recaptcha/*") or (http.request.uri.path wildcard r"/cdn-cgi/*") ->保存规则
。
通过设置使网站有效解决Cloudflare CDN缓存reCAPTCHA验证页面,从而保证了网站的正常访问以及排名。希望能帮助到同样遇到此类问题的站长。