防盗链(Hotlink Protection)是一种防止其他网站直接链接到你的服务器上的资源(如图片、视频、CSS、JavaScript等),从而节省带宽和保护资源的技术。通过Apache服务器,你可以使用mod_rewrite
模块来实现防盗链。以下是一个基本的防盗链配置示例:
-
启用
mod_rewrite
模块: 确保你的Apache服务器已经启用了mod_rewrite
模块。你可以在Apache配置文件(通常是httpd.conf
或apache2.conf
)中找到以下行并确保它们没有被注释掉:LoadModule rewrite_module modules/mod_rewrite.so
-
配置防盗链: 在你的网站根目录下的
.htaccess
文件中添加以下配置:RewriteEngine On # 允许的引用站点列表 RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC] RewriteCond %{HTTP_REFERER} !^$ # 阻止访问 RewriteRule \.(jpg|jpeg|png|gif|css|js)$ - [F,L]
解释:
RewriteEngine On
:启用重写引擎。RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
:检查请求的引用页(referrer)是否不是来自你的域名(不区分大小写)。RewriteCond %{HTTP_REFERER} !^$
:确保引用页不为空。RewriteRule \.(jpg|jpeg|png|gif|css|js)$ - [F,L]
:如果引用页不符合条件,则返回403 Forbidden状态码,并停止进一步处理。
-
允许特定域名访问: 如果你希望允许某些特定的域名访问你的资源,可以在
RewriteCond
中添加这些域名:RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC] RewriteCond %{HTTP_REFERER} !^http://(www\.)?trusteddomain1\.com [NC] RewriteCond %{HTTP_REFERER} !^http://(www\.)?trusteddomain2\.com [NC]
-
测试配置: 保存
.htaccess
文件并重新加载Apache服务器以应用更改。你可以使用以下命令重新加载Apache:sudo systemctl reload apache2
或者如果你使用的是其他系统管理工具,请相应地调整命令。
通过以上步骤,你可以实现基本的防盗链功能。根据你的具体需求,你可能需要进一步调整和优化配置。