apache防盗链核心是通过referer头识别并拦截非授权域名对静态资源的引用,需启用mod_rewrite模块,在.htaccess或虚拟主机配置中设置重写规则,支持403拒绝或重定向,但referer可伪造,建议结合token、水印及cdn增强防护。

Apache 设置防盗链,核心是拦截非授权来源对静态资源(如图片、视频、PDF)的直接引用。关键在于识别请求头中的 Referer 是否来自你允许的域名,并据此拒绝或重定向非法请求。操作不难,但细节决定是否真正生效。
用 .htaccess 文件快速启用(适合共享主机或无服务器权限场景)
适用于网站根目录可写、支持 mod_rewrite 的环境。在网站根目录创建或编辑 .htaccess 文件,加入以下规则:
- 确保重写引擎开启:
RewriteEngine On - 只允许你自己的域名访问常见媒体文件:
RewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !^https?://(www\.)?yourdomain\.com [NC]RewriteRule \.(jpg|jpeg|png|gif|mp4|pdf)$ - [F] -
注意:把
yourdomain.com替换为你实际的域名;[F]返回 403 禁止,也可换成[R=302,L]重定向到提示页
通过 Apache 全局配置文件部署(推荐用于 VPS 或独立服务器)
更稳定、性能更好,且避免每个目录重复解析 .htaccess。以 Ubuntu/Debian 为例:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 新建配置文件:
sudo nano /etc/apache2/conf-available/anti-hotlinking.conf - 填入带条件的
<ifmodule mod_rewrite.c></ifmodule>块,结构与 .htaccess 类似,但建议加上路径限制,例如限定作用于/var/www/html下的资源 - 启用并重启:
sudo a2enconf anti-hotlinking && sudo systemctl restart apache2 - CentOS/RHEL 用户对应路径为
/etc/httpd/conf.d/,启用后运行sudo systemctl restart httpd
增强防护:绕过 Referer 伪造和移动端兼容问题
单纯依赖 Referer 不够安全——它可被客户端轻易伪造,且 App、微信内嵌页、某些浏览器隐私模式可能不发送 Referer。因此建议组合使用:
- 对敏感资源(如会员图片、下载链接)改用 Token 验证机制:生成含时间戳和签名的临时 URL,过期即失效
- 对公开图片添加半透明文字水印,既不影响浏览,又让盗用者无法干净去除来源标识
- 配合 CDN 的 Referer 白名单功能(如阿里云 CDN、Cloudflare),多一层边缘过滤
测试与验证要点
配置完成后务必验证效果,避免误伤正常访问:
- 从你自己网站页面点击图片,应能正常加载
- 用另一个网站(如临时建个 HTML 文件)引用你的图片链接,应返回 403 或跳转提示页
- 直接在浏览器地址栏输入图片 URL(空 Referer),默认会被放行;如需拦截,需额外加
RewriteCond %{HTTP_REFERER} ^$判断 - 用手机浏览器、微信打开含图页面,确认 Referer 行为是否符合预期;如有异常,考虑降级为 Token 或 CDN 方案









