阅读量:2
Apache2 Ubuntu版防盗链配置指南
一 基本原理与准备
- 防盗链通过检查请求的 HTTP_REFERER 头,仅允许来自白名单域名或空来源的请求访问受保护资源(如图片、视频)。
- 在 Ubuntu 上通常使用 mod_rewrite 模块实现;若使用基于目录的配置,需确保目录允许 .htaccess 覆盖。
- 建议同时支持 HTTP 与 HTTPS,并对规则使用 [NC] 忽略大小写。
二 操作步骤
- 启用必要模块
- 启用重写模块:sudo a2enmod rewrite
- 如需在目录级使用 .htaccess,确保虚拟主机配置中目录设置为:AllowOverride All
- 选择一种配置方式并写入规则
- 全局方式:编辑 /etc/apache2/apache2.conf 或 /etc/apache2/conf-available/anti-hotlinking.conf
- 虚拟主机方式:编辑 /etc/apache2/sites-available/yourdomain.com.conf 的
内 段
- 使配置生效
- 若使用 conf-available 方式:sudo a2enconf anti-hotlinking
- 重启服务:sudo systemctl restart apache2
- 测试
- 从非白名单域名加载受保护资源,应返回 403 Forbidden
- 从白名单域名或浏览器直接访问应正常返回资源
三 常用配置示例
- 示例一 基础规则(HTTP 与 HTTPS,常用图片类型)
RewriteEngine On
# 允许空来源(浏览器直接访问、部分客户端)
RewriteCond %{HTTP_REFERER} !^$
# 允许本站域名(含 www 与 HTTPS)
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?yourdomain\.com [NC]
# 阻止常见图片类型
RewriteRule \.(jpg|jpeg|png|gif|webp|svg)$ - [F,L]
说明:将 yourdomain.com 替换为你的实际域名;按需增减扩展名。
- 示例二 多域名白名单
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com [NC]
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?another\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
说明:可继续添加更多允许域名。
- 示例三 仅保护指定目录(如 /images)
Require all granted
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?yourdomain\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
说明:将规则限制在 /images 目录,减少对其他资源的影响。
四 进阶与注意事项
- 空 Referer 的处理:部分合法访问(如直接输入地址、移动端客户端)可能没有 Referer,建议保留 !^$ 条件以避免误拦截。
- 启用目录级配置:若使用 .htaccess,虚拟主机
需设置 AllowOverride All,并确保 Apache 对 .htaccess 有读取权限。 - 规则作用范围:将规则放在
或 内更可控;全局配置可能影响所有站点。 - 使用 HTTPS:规则中同时匹配 http 与 https(使用 https?),避免开启 HTTPS 后规则失效。
- 浏览器与隐私模式:隐私/无痕模式可能不发送 Referer,空 Referer 放行策略可兼顾可用性。
- 性能与维护:规则尽量精确匹配路径与扩展名,减少不必要的正则回溯;变更前备份配置,变更后及时测试。
以上就是关于“Apache2 Ubuntu版如何防盗链”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm