Discord Webhook嵌入Wordpress托管图片异常问题咨询
问题原因解答
- 自有Wordpress站点图片无法在image、thumbnail位置嵌入的核心原因是站点开启了防盗链限制。Discord拉取嵌入大图/缩略图时,请求会携带Discord域名作为Referer,被你的站点防盗链规则拦截后无法正常获取资源,因此无法渲染。而作者图标、页脚图标属于小尺寸资源,Discord的抓取策略不同(可能不带Referer或走独立的小资源抓取逻辑),未触发防盗链限制,因此可以正常显示。
- Imgur的图片可以正常工作,是因为Imgur作为公共图床默认没有设置针对Discord的防盗链规则,允许跨站引用图片资源,Discord可以正常拉取到图片内容。
- Discord Webhook接口仅校验提交的JSON结构合法性,不会实时校验图片URL的可访问性与资源有效性,图片拉取和渲染是异步后置处理的流程,因此接口只会返回结构校验通过的成功状态,不会返回图片加载相关的错误信息。
问题验证
你可以通过以下命令确认是否为防盗链拦截问题:
curl -I -A "Discordbot/2.0" <你的Wordpress图片链接>
如果返回的HTTP状态码为403,即可确认是防盗链规则拦截了Discord的图片请求。
解决思路
- 检查你的Wordpress站点的防盗链配置:包括安全插件的防盗链规则、服务器(Nginx/Apache)层面的防盗链配置、CDN的防盗链设置,放开
wp-content/uploads目录下图片资源的防盗链限制,或者将Discord的爬虫UA、相关域名加入防盗链白名单。 - 如果你不想全量放开防盗链,可以调整服务器规则,仅对UA包含
Discordbot的请求开放图片目录的访问权限。 - 兜底方案可以调整Webhook的请求逻辑:将图片作为请求附件一起提交到Discord,embed内通过
attachment://文件名的格式引用附件资源,完全规避外链防盗链问题。
内容的提问来源于stack exchange,提问作者Gabcvit
相关产品推荐
相关产品推荐

