温馨提示×

CentOS Apache如何配置防盗链

小樊
66
2025-03-13 14:20:37
栏目: 智能运维

在CentOS系统中配置Apache防盗链,可以通过修改Apache的配置文件来实现。以下是详细的步骤:

1. 编辑Apache配置文件

首先,你需要编辑Apache的主配置文件httpd.confapache2.conf,通常位于/etc/httpd/conf//etc/apache2/目录下。

sudo vi /etc/httpd/conf/httpd.conf

2. 添加防盗链规则

在配置文件中找到<Directory><Location>块,添加以下防盗链规则:

<Directory "/var/www/html">
    # 允许的域名列表
    SetEnvIf Referer "^http(s)?://(www\.)?example\.com$" allow_referer
    SetEnvIf Referer "^$" deny_referer

    # 拒绝所有其他引用
    Order allow,deny
    Allow from env=allow_referer
    Deny from all
</Directory>

在这个例子中:

  • SetEnvIf Referer "^http(s)?://(www\.)?example\.com$" allow_referer:允许来自example.com及其子域名的引用。
  • SetEnvIf Referer "^$" deny_referer:拒绝没有引用来源的请求。
  • Order allow,deny:设置允许和拒绝的顺序。
  • Allow from env=allow_referer:只允许来自allow_referer环境的请求。
  • Deny from all:拒绝所有其他请求。

3. 配置.htaccess文件(可选)

如果你希望更灵活地控制防盗链规则,可以在网站的根目录下创建或编辑.htaccess文件。

sudo vi /var/www/html/.htaccess

然后在.htaccess文件中添加以下内容:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]

在这个例子中:

  • RewriteEngine On:启用重写引擎。
  • RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example\.com [NC]:检查引用来源是否不是example.com及其子域名。
  • RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]:如果条件匹配,则返回403 Forbidden状态码。

4. 重启Apache服务

修改配置文件后,需要重启Apache服务以使更改生效。

sudo systemctl restart httpd

或者如果你使用的是旧版本的CentOS:

sudo service httpd restart

5. 测试防盗链配置

最后,你可以通过访问你的网站并尝试从不同的域名引用图片来测试防盗链配置是否生效。

通过以上步骤,你可以在CentOS系统中成功配置Apache防盗链。

0