阿里云提示证书到期,闲着无聊就去阿里后台捣鼓了一下,手贱的启用阿里云CDN的防盗链后,通过百度访问站点的任何页面,服务器均返回HTTP状态码403,浏览器提示"You do not have permission to get URL '/' from this server."。

1-20110QU50V31.jpg

后来经过一系列的分析发现,CDN设置时启用了防盗链且在referer白名单中只设置了自己站点的域名,而从百度过来的链接,HTTP head头中的referer是baidu.com,所以baidu.com不在CDN的referer白名单中,因此就造成启用CDN后通过百度访问站点返回HTTP状态码403的情况。


解决办法:

  1. 在referer白名单中增加*.baidu.com及其他搜索引擎、外链referer

  2. 禁用CDN的防盗链功能。阿里云CDN清空referer白名单设置,阿里云CDN选择referer黑名单并确保自己的域名和外链域名不再referer黑名单中。

因为网站的外链可能有很多种情况,所以在此建议站长尽量不要启用防盗链设置,以免造成站点无法正常访问。