在Ubuntu上使用Apache2实现防盗链,可以通过配置Apache的.htaccess
文件来实现。以下是详细的步骤:
1. 创建或编辑 .htaccess
文件
首先,你需要找到你的网站根目录,并在该目录下创建或编辑 .htaccess
文件。通常,这个文件位于 /var/www/html/yourdomain.com/
。
sudo nano /var/www/html/yourdomain.com/.htaccess
2. 添加防盗链规则
在 .htaccess
文件中添加以下内容来设置防盗链规则:
RewriteEngine On # 允许的域名列表 RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC] RewriteCond %{HTTP_REFERER} !^https://(www\.)?yourdomain\.com [NC] # 阻止访问 RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
解释:
RewriteEngine On
:启用重写引擎。RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
:检查HTTP请求头中的Referer
字段,如果不是来自你允许的域名,则执行下一条规则。RewriteCond %{HTTP_REFERER} !^https://(www\.)?yourdomain\.com [NC]
:同上,但检查HTTPS请求。RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
:如果上述条件满足,则阻止访问图片文件(可以根据需要调整文件类型)。
3. 保存并退出
保存文件并退出编辑器。
Ctrl + X Y Enter
4. 重启Apache服务器
为了使更改生效,需要重启Apache服务器。
sudo systemctl restart apache2
5. 测试防盗链
现在,尝试从不允许的域名访问你的图片文件,应该会被阻止。例如,如果你在浏览器中直接访问 http://yourdomain.com/images/example.jpg
,并且该请求不是来自 yourdomain.com
,则应该会看到一个403 Forbidden错误。
注意事项
- 确保你的网站域名是正确的,并且与你在
.htaccess
文件中配置的域名一致。 - 如果你有多个子域名,可以在
RewriteCond
中添加相应的子域名。 - 你可以根据需要调整允许的域名列表和阻止的文件类型。
通过以上步骤,你就可以在Ubuntu上使用Apache2实现基本的防盗链功能。