在Apache2中配置防盗链(Hotlink Protection)可以通过多种方法实现,其中一种常见的方法是使用mod_rewrite
模块。以下是一个基本的步骤指南:
mod_rewrite
启用 mod_rewrite
模块:
确保你的Apache服务器已经启用了mod_rewrite
模块。你可以通过以下命令启用它:
sudo a2enmod rewrite
编辑 .htaccess
文件:
在你的网站根目录下创建或编辑 .htaccess
文件。例如,如果你的网站根目录是 /var/www/html
,则编辑 /var/www/html/.htaccess
文件。
添加防盗链规则:
在 .htaccess
文件中添加以下内容:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
解释:
RewriteEngine On
:启用重写引擎。RewriteCond %{HTTP_REFERER} !^$
:检查HTTP Referer是否为空。RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
:检查HTTP Referer是否不是你的域名(忽略大小写)。RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
:如果Referer不符合条件,则返回403 Forbidden状态码,并停止进一步处理。mod_headers
如果你不想使用mod_rewrite
,也可以使用mod_headers
模块来实现防盗链。
启用 mod_headers
模块:
确保你的Apache服务器已经启用了mod_headers
模块。你可以通过以下命令启用它:
sudo a2enmod headers
编辑 Apache 配置文件:
编辑你的Apache配置文件(例如 /etc/apache2/sites-available/yourdomain.conf
),添加以下内容:
<Directory /var/www/html>
Header set Referrer-Policy "no-referrer-when-downgrade"
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
</Directory>
解释:
Header set Referrer-Policy "no-referrer-when-downgrade"
:设置Referrer策略。重启 Apache 服务器: 保存配置文件后,重启Apache服务器以应用更改:
sudo systemctl restart apache2
通过以上步骤,你应该能够在Apache2中成功配置防盗链。