防盗链(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
或者如果你使用的是其他系统管理工具,请相应地调整命令。
通过以上步骤,你可以实现基本的防盗链功能。根据你的具体需求,你可能需要进一步调整和优化配置。