配置Apache服务器以实现防盗链功能,可以通过使用mod_rewrite
模块来实现。以下是一个基本的步骤指南:
mod_rewrite
模块已启用首先,确保你的Apache服务器已经启用了mod_rewrite
模块。你可以通过以下命令来启用它:
sudo a2enmod rewrite
然后重启Apache服务器:
sudo systemctl restart apache2
在你的网站根目录下找到或创建一个.htaccess
文件,并添加以下内容:
RewriteEngine On
# 允许的域名列表
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
# 不允许的域名列表
RewriteCond %{HTTP_REFERER} !^http://(www\.)?anotherdomain\.com [NC]
# 阻止访问
RewriteRule \.(jpg|jpeg|png|gif)$ - [F]
在这个配置中:
RewriteEngine On
启用重写引擎。RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
检查HTTP Referer头,如果不在允许的域名列表中,则执行下一条规则。RewriteRule \.(jpg|jpeg|png|gif)$ - [F]
阻止对指定文件类型的访问,并返回403 Forbidden状态码。如果你希望允许特定的域名访问你的资源,可以在RewriteCond
中添加这些域名:
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?anotherdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yetanotherdomain\.com [NC]
如果你希望允许所有域名访问网站的某些路径(例如,CSS、JS文件),可以在.htaccess
文件中添加以下规则:
# 允许所有域名访问特定路径
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/path/to/your/resources/
RewriteRule \.(jpg|jpeg|png|gif)$ - [F]
完成上述配置后,重新加载Apache服务器以确保更改生效:
sudo systemctl reload apache2
然后尝试从不同的域名访问你的资源,确保防盗链功能正常工作。
.htaccess
文件位于正确的目录中,并且Apache配置允许使用.htaccess
文件进行重写。通过以上步骤,你应该能够成功配置Apache服务器以实现防盗链功能。