引言
在网站开发中,我们常会遇到多方面的技术挑战。近期,我在配置网站时遇到了两个看似矛盾的问题:
-
Tianli服务验证失败:因网站设置了
Referrer-Policy: same-origin
,导致Tianli无法验证请求来源。 -
微信公众号图片防盗链限制:直接引用微信图片时,因
Referer
头暴露域名而触发防盗链机制,图片无法加载。
本文将分享一套完整的解决方案,既能满足Tianli的验证需求,又能绕过微信图片的防盗链限制。
问题分析
1. Tianli验证失败的原因
Tianli服务依赖 Referer
头判断请求来源,要求 Referrer-Policy
至少为 origin
。若设置为 same-origin
或 no-referrer
,会导致请求头中缺失必要信息。
2. 微信图片防盗链机制
微信服务器会检查 Referer
头,若来源非微信域名(如 mp.weixin.qq.com
),则返回 403 Forbidden
错误。
解决方案概述
-
-
-
修改全局
Referrer-Policy
:设置为origin
,允许Tianli验证来源。 -
配置Nginx反向代理:中转微信图片请求,清空
Referer
头并伪装Host
头。 -
前端动态替换图片路径:将原始URL替换为代理路径。
-
验证与调试:确保代理生效且图片正常加载。
-
-
分步实施指南
一、修改全局Referrer-Policy
在HTML的 <head>
标签中调整 meta
标签:
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容