ubuntu

Apache2 Ubuntu版如何防盗链

小樊
37
2025-11-19 10:53:35
栏目: 智能运维

Apache2 Ubuntu版防盗链配置指南

一 基本原理与准备

二 操作步骤

  1. 启用必要模块
    • 启用重写模块:sudo a2enmod rewrite
    • 如需在目录级使用 .htaccess,确保虚拟主机配置中目录设置为:AllowOverride All
  2. 选择一种配置方式并写入规则
    • 全局方式:编辑 /etc/apache2/apache2.conf/etc/apache2/conf-available/anti-hotlinking.conf
    • 虚拟主机方式:编辑 /etc/apache2/sites-available/yourdomain.com.conf
  3. 使配置生效
    • 若使用 conf-available 方式:sudo a2enconf anti-hotlinking
    • 重启服务:sudo systemctl restart apache2
  4. 测试
    • 从非白名单域名加载受保护资源,应返回 403 Forbidden
    • 从白名单域名或浏览器直接访问应正常返回资源

三 常用配置示例

<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>

说明:可继续添加更多允许域名。

<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 目录,减少对其他资源的影响。

四 进阶与注意事项

0
看了该问题的人还看了