Apache2 Ubuntu版如何防盗链
导读:Apache2 Ubuntu版防盗链配置指南 一 基本原理与准备 防盗链通过检查请求的 HTTP_REFERER 头,仅允许来自白名单域名或空来源的请求访问受保护资源(如图片、视频)。 在 Ubuntu 上通常使用 mod_rewrite...
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,常用图片类型)
<
IfModule mod_rewrite.c>
RewriteEngine On
# 允许空来源(浏览器直接访问、部分客户端)
RewriteCond %{
HTTP_REFERER}
!^$
# 允许本站域名(含 www 与 HTTPS)
RewriteCond %{
HTTP_REFERER}
!^https?://(www\.)?yourdomain\.com [NC]
# 阻止常见图片类型
RewriteRule \.(jpg|jpeg|png|gif|webp|svg)$ - [F,L]
<
/IfModule>
说明:将 yourdomain.com 替换为你的实际域名;按需增减扩展名。
- 示例二 多域名白名单
<
IfModule mod_rewrite.c>
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]
<
/IfModule>
说明:可继续添加更多允许域名。
- 示例三 仅保护指定目录(如 /images)
<
Directory "/var/www/html/images">
Require all granted
RewriteEngine On
RewriteCond %{
HTTP_REFERER}
!^$
RewriteCond %{
HTTP_REFERER}
!^https?://(www\.)?yourdomain\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
<
/Directory>
说明:将规则限制在 /images 目录,减少对其他资源的影响。
四 进阶与注意事项
- 空 Referer 的处理:部分合法访问(如直接输入地址、移动端客户端)可能没有 Referer,建议保留 !^$ 条件以避免误拦截。
- 启用目录级配置:若使用 .htaccess,虚拟主机 需设置 AllowOverride All,并确保 Apache 对 .htaccess 有读取权限。
- 规则作用范围:将规则放在 或 内更可控;全局配置可能影响所有站点。
- 使用 HTTPS:规则中同时匹配 http 与 https(使用 https?),避免开启 HTTPS 后规则失效。
- 浏览器与隐私模式:隐私/无痕模式可能不发送 Referer,空 Referer 放行策略可兼顾可用性。
- 性能与维护:规则尽量精确匹配路径与扩展名,减少不必要的正则回溯;变更前备份配置,变更后及时测试。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Apache2 Ubuntu版如何防盗链
本文地址: https://pptw.com/jishu/751608.html
