在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中实现基本的防盗链功能,保护你的资源不被未经授权的站点引用。