在Apache2中实现防盗链功能,可以通过配置.htaccess文件来限制外部网站直接链接到你的资源。以下是详细的步骤:
.htaccess 文件首先,找到你想要保护资源的目录,并在该目录下创建或编辑 .htaccess 文件。如果没有这个文件,可以手动创建一个。
cd /path/to/your/protected/directory
touch .htaccess
nano .htaccess
在 .htaccess 文件中添加以下内容:
RewriteEngine On
# 允许的引用站点列表
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
# 阻止所有其他引用站点的请求
RewriteRule \.(jpg|jpeg|png|gif|css|js)$ - [F,L]
解释:
RewriteEngine On:启用URL重写引擎。RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]:检查HTTP请求头中的Referer字段,如果它不是来自yourdomain.com或其子域名,则执行下一条规则。RewriteRule \.(jpg|jpeg|png|gif|css|js)$ - [F,L]:阻止对指定文件类型(如图片、CSS、JS)的访问,并返回403 Forbidden状态码。你可以根据需要调整允许的引用站点列表和阻止的文件类型。例如,如果你只想允许特定的子域名访问,可以修改RewriteCond中的条件:
RewriteCond %{HTTP_REFERER} !^http://(www\.)?subdomain\.yourdomain\.com [NC]
保存 .htaccess 文件后,重新加载Apache2服务以应用更改:
sudo systemctl reload apache2
然后尝试从不同的站点访问受保护的资源,确保防盗链规则生效。
Referer字段,但这个字段可以被伪造,因此不是绝对安全的。RewriteCond中使用https://而不是http://。通过以上步骤,你可以在Apache2中实现基本的防盗链功能,保护你的资源不被未经授权的站点引用。