网站升级HTTPS后网页可访问但图片加载返回403错误如何解决
问题原因
这个问题的核心诱因是站点防盗链规则未适配HTTPS升级:
你之前为HTTP站点配置的防盗链规则,默认仅允许携带HTTP前缀的本站域名作为Referer头的资源请求。升级HTTPS后,页面加载图片时请求携带的Referer头变为https://www.manogat.com/xxx格式,被原有防盗链规则判定为非法来源,因此返回403错误。
单独在地址栏访问图片可以正常加载,是因为直接输入地址访问的请求不会携带Referer头,不会触发防盗链拦截规则。
解决方案
可以根据你的主机部署环境选择对应的修复方式:
- 如果你使用cPanel等可视化主机面板,直接在面板的「防盗链设置」页面,将
https://www.manogat.com和https://manogat.com添加到允许的来源站点列表中即可。 - 如果你使用Apache作为Web服务,修改站点根目录的
.htaccess文件,调整防盗链规则适配HTTPS,参考配置如下:
SetEnvIfNoCase Referer "^https://www\.manogat\.com/" allowed_referer SetEnvIfNoCase Referer "^http://www\.manogat\.com/" allowed_referer # 允许无Referer的请求(适配直接访问、搜索引擎爬虫等场景) SetEnvIfNoCase Referer "^$" allowed_referer <FilesMatch "\.(png|jpg|jpeg|gif|webp)$"> Require env allowed_referer </FilesMatch>
- 如果你使用Nginx作为Web服务,修改站点对应的
.conf配置文件,更新防盗链的合法Referer规则,参考配置如下:
valid_referers none blocked server_names *.manogat.com manogat.com https://*.manogat.com https://manogat.com; if ($invalid_referer) { return 403; }
- 你可以先做快速验证:在测试页面
ssltest.html的<head>标签内添加<meta name="referrer" content="no-referrer">,如果修改后图片可以正常加载,即可100%确认是防盗链规则导致的问题。
内容的提问来源于stack exchange,提问作者user1940163
相关产品推荐
相关产品推荐

