温馨提示×

centos apache2怎样配置防盗链

小樊
38
2026-09-21 06:22:40
栏目: 智能运维

CentOS 上,Apache 通常叫 httpd(不是 apache2,apache2 一般是 Ubuntu/Debian 的叫法)。下面以 CentOS + Apache (httpd) 为例,说明如何配置防盗链(Hotlink Protection)


一、确认 Apache 已安装并运行

httpd -v
systemctl status httpd

二、开启 mod_rewrite 模块(防盗链依赖它)

一般默认已开启,检查一下:

httpd -M | grep rewrite

如果没有,编辑配置开启:

vi /etc/httpd/conf/httpd.conf

确保有:

LoadModule rewrite_module modules/mod_rewrite.so

三、配置防盗链(推荐方式)

方法 1:在虚拟主机或目录中配置(最常用)

编辑你的站点配置文件,例如:

vi /etc/httpd/conf.d/your-site.conf

添加以下内容(以图片为例):

<Directory "/var/www/html">
    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^$ [NC]
    RewriteCond %{HTTP_REFERER} !^https://(www\.)?yourdomain\.com [NC]
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
    RewriteRule \.(jpg|jpeg|png|gif|webp|mp4|zip)$ - [F]
</Directory>

说明:

  • yourdomain.com 替换成你的域名
  • !^$ 允许空 Referer(浏览器直接访问)
  • [F] 表示 Forbidden(403)
  • 可防盗链的类型:jpg jpeg png gif webp mp4 zip

四、禁止盗链并返回一张提示图(可选)

RewriteRule \.(jpg|png|gif)$ https://yourdomain.com/static/forbidden.png [R,L]

五、使用 .htaccess(如果允许)

如果你不能改主配置,可在网站根目录:

vi /var/www/html/.htaccess

内容同上(去掉 <Directory> 标签)。

确保 httpd.conf 中允许:

AllowOverride All

六、重启 Apache 生效

systemctl restart httpd

七、测试防盗链

  • 本域名访问:✅ 正常
  • 其他网站引用:❌ 403 或提示图

八、常见问题

  1. CDN / 微信 / 搜索引擎 可加白名单:

    RewriteCond %{HTTP_REFERER} !^https://.*\.baidu\.com [NC]
    RewriteCond %{HTTP_REFERER} !^https://.*\.google\.com [NC]
    
  2. HTTPS / HTTP 混用 两个都要写


如果你用的是 Nginx 反代 + Apache,或 CentOS 7/8/Stream,可以告诉我,我可以给你更精准的配置。

0