应启用“允许空HTTP_REFERER请求”、添加本站及微信域名至许可列表、清空或精简URL后缀规则、检查并删除配置文件中重复防盗链指令。

如果您在宝塔面板中启用了防盗链功能,但网站后台或前台图片均无法加载,表现为403/404错误或空白占位,这通常是因为防盗链规则误拦截了本站合法请求。以下是解决此问题的步骤:
一、检查并启用“允许空HTTP_REFERER请求”
富文本编辑器(如UEditor、KindEditor)上传后预览图片时,iframe内嵌页面发起的图片请求不携带Referer头,导致被防盗链模块拒绝。若未开启该选项,系统将直接拒绝无来源标识的请求。
1、登录宝塔面板,进入【网站】列表。
2、点击目标站点域名,打开站点设置。
3、左侧菜单选择【防盗链】。
4、勾选允许空HTTP_REFERER请求选项。
5、点击【保存】并重启对应Web服务(Nginx/Apache)。
二、将本站主域名及子域名添加至许可域名列表
防盗链规则仅放行白名单中的Referer域名,若配置遗漏(如仅填www.example.com却未加example.com),会导致部分页面跳转或AJAX请求失败。
1、在【防盗链】配置页中定位【许可域名】输入框。
2、确认已完整填写所有可能发起请求的域名,包括:example.com、www.example.com、admin.example.com、localhost、127.0.0.1(开发环境需包含)。
3、多个域名用英文逗号分隔,不可留空格。
4、保存配置并重载Web服务。
三、为微信小程序添加专用Referer白名单
微信小程序WebView内请求图片时,其Referer固定为https://servicewechat.com,而非业务域名,因此必须显式加入许可列表,否则所有小程序端图片均返回403。
1、在【许可域名】输入框末尾追加:servicewechat.com。
2、注意不要添加https://前缀,仅填写域名主体。
3、保存后清除小程序本地缓存并重新进入页面验证。
四、禁用防盗链中的URL后缀匹配误判
部分防盗链实现会强制校验请求路径是否以指定后缀结尾,若图片路径含查询参数(如?ver=123)或使用CDN回源路径,可能导致匹配失败而拦截。
1、进入【防盗链】配置页。
2、清空【URL后缀】输入框内容,或仅保留必需项:jpg,jpeg,png,gif,webp,bmp。
3、避免填写通配符(如*)、斜杠(/)或带点扩展名(如.jpg)。
4、保存并测试含参数的图片URL是否可访问。
五、检查Nginx/Apache配置中是否重复启用防盗链
若手动在站点配置文件中添加了rewrite规则或add_header指令限制Referer,会与宝塔内置防盗链叠加生效,造成双重拦截。
1、点击站点设置中的【配置文件】选项卡。
2、搜索关键词:valid_referers、if ($invalid_referer)、rewrite .*\.(jpg|png)。
3、删除或注释掉所有自定义防盗链相关段落。
4、保存配置,执行nginx -t验证语法,再重载服务。










