网站建设 ·

启用CDN后,通过搜索引擎访问的返回403状态码

今天站点出现了在站点用户激活的时候返回HTTP 状态码 403,You don't have permission to access the URL on this server的问题。意思就是被限制了,不允许您访问。

返回的结果

一开始以为只是个别出现的情况,然后没处理,后来我自己通过搜索引擎,百度、谷歌、百度统计、微博等来源访问,统统403错误代码。发现这应该是哪里个配置出现的问题。

猜测问题原因

查看了下访问日志,并没有在日志中发现有403的错误代码。我是开启了几个CDN线路,一开始以为是分配线路导致的问题,最后只保留了一个线路,发现问题依旧,最后切换线路,再到最后直接解析源IP,发现好了。

通过简单的分析,应该很清楚问题了,问题原因就出现在CDN上,被CDN拦截了。

问题原因

找到了阿里云CDN的配置,发现之前设置了Refer防盗链白名单通过配置访问的 referer 黑白名单来对访问者身份进行识别和过滤,从而限制资源被访问的情况)。

假如通过百度搜索引擎访问的,HTTP head头中的Refer是baidu.com,而baidu.com并不在Refer防盗链白名单中,所以会统统拒绝掉,所以会出现访问被拒绝。

解决方法

1、在Refer防盗链白名单添加搜索引擎,例如*.baidu.com

2、直接禁用Refer防盗链白名单。

我是采取了后者,因为你不知道有多少个来源来访问您的站点。如果不想指定某个来源来访问的,可开启黑名单禁止即可。

自己给自己挖的坑,小小跳了一下。

>>>>>>>>>>>>>  本文结束  <<<<<<<<<<<<<<

阿里云CDN流量包(包月)两年仅需0.9元 + 阿里云幸运劵

点击查看 阿里云CDN 稳定:阿里云 CDN 全球拥有节点 1000+,45T 的带宽能力,覆盖六大洲,支持国内主流运营商 极速:毫秒级响应,智能导航路径,骨干网络万兆网卡搭配SSD存储更流···

参与评论