使用Apache2实现防盗链(Hotlink Protection)可以防止其他网站直接链接并显示你的图片、视频或其他资源。以下是详细的步骤和配置方法:
mod_rewrite
模块启用mod_rewrite
模块:
确保你的Apache2服务器已经启用了mod_rewrite
模块。你可以通过以下命令启用它:
sudo a2enmod rewrite
编辑.htaccess
文件:
在你的网站根目录下创建或编辑.htaccess
文件,添加以下内容:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule \.(jpg|jpeg|png|gif|svg|mp4|avi|mov)$ - [F,L]
解释:
RewriteEngine On
:启用重写引擎。RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
:检查HTTP请求头中的Referer
字段,如果不是来自你的域名,则拒绝访问。RewriteCond %{HTTP_REFERER} !^$
:确保Referer
字段不为空。RewriteRule \.(jpg|jpeg|png|gif|svg|mp4|avi|mov)$ - [F,L]
:匹配特定文件类型(如图片和视频),并返回403 Forbidden状态码。重启Apache2服务器:
保存.htaccess
文件后,重启Apache2服务器以使更改生效:
sudo systemctl restart apache2
mod_headers
模块启用mod_headers
模块:
确保你的Apache2服务器已经启用了mod_headers
模块。你可以通过以下命令启用它:
sudo a2enmod headers
编辑.htaccess
文件:
在你的网站根目录下创建或编辑.htaccess
文件,添加以下内容:
<IfModule mod_headers.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !^$
Header set X-Frame-Options "SAMEORIGIN"
Header set Content-Security-Policy "frame-ancestors 'self'"
</IfModule>
解释:
RewriteEngine On
:启用重写引擎。RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
:检查HTTP请求头中的Referer
字段,如果不是来自你的域名,则拒绝访问。Header set X-Frame-Options "SAMEORIGIN"
:防止点击劫持。Header set Content-Security-Policy "frame-ancestors 'self'"
:限制资源只能通过同源页面加载。重启Apache2服务器:
保存.htaccess
文件后,重启Apache2服务器以使更改生效:
sudo systemctl restart apache2
通过以上步骤,你可以有效地使用Apache2实现防盗链功能,保护你的网站资源不被滥用。