温馨提示×

centos apache2如何防盗链

小樊
36
2026-09-15 02:09:54
栏目: 智能运维

在 CentOS 上,如果使用 Apache(httpd) 做 Web 服务器,防盗链(防止其他网站盗用你的图片、视频、文件等)通常通过 Apache 的 mod_rewrite 模块来实现。

下面给你几种常用、实用的做法。


一、确认 Apache 已启用 rewrite 模块

CentOS 一般使用 httpd:

httpd -M | grep rewrite

如果没有看到 rewrite_module,启用它:

vim /etc/httpd/conf.modules.d/00-base.conf

确保有这一行(通常默认有):

LoadModule rewrite_module modules/mod_rewrite.so

然后重启 Apache:

systemctl restart httpd

二、在 Apache 配置中设置防盗链(推荐)

1️⃣ 针对整个站点(httpd.conf 或 vhost)

编辑你的站点配置(如 /etc/httpd/conf.d/your-site.conf):

<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot /var/www/html

    <Directory "/var/www/html">
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    # 防盗链
    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com [NC]
    RewriteCond %{HTTP_REFERER} !^https://(www\.)?example\.com [NC]
    RewriteRule \.(jpg|jpeg|png|gif|webp|mp4|zip)$ - [F]
</VirtualHost>

✅ 效果:

  • 只允许 example.com 引用图片/视频
  • 其他网站直接访问会被 403 Forbidden

三、使用 .htaccess 防盗链(更灵活)

如果你的目录支持 .htaccess(AllowOverride All),可以直接在网站根目录创建:

vim /var/www/html/.htaccess

内容:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp|mp4|zip)$ - [F]

✅ 优点:

  • 不用重启 Apache
  • 适合虚拟主机

四、防盗链 + 返回提示图片(进阶)

你也可以把盗链请求重定向到一张“警告图”:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com [NC]
RewriteRule \.(jpg|png|gif)$ http://www.example.com/static/steal.png [R,L]

五、只防图片,不防 CSS/JS(常见做法)

RewriteRule \.(jpg|jpeg|png|gif|webp)$ - [F]

六、注意事项(很重要)

  1. 空 Referer 要放通(否则浏览器直接访问不了)
    RewriteCond %{HTTP_REFERER} !^$
    
  2. 搜索引擎、微信、APP 可能无 Referer,可视情况放行
  3. 防盗链只是“轻度防护”,不能防止抓包

七、验证是否生效

从别的网站引用你的图片:

<img src="http://www.example.com/a.jpg">

应返回 403


如果你愿意,我可以:

  • 帮你写 Nginx + Apache 混合环境 的防盗链
  • 按 CDN / OSS 场景配置
  • 给你一份 可直接复制的 CentOS 配置模板

你用的是 Apache 2.4 吗?网站是图片站还是视频站?

0 踩