在Ubuntu上配置Apache2以防止防盗链,可以通过修改Apache的配置文件来实现。防盗链的目的是防止其他网站直接链接到你的服务器上的资源(如图片、视频等),从而节省带宽并保护你的内容。以下是详细的步骤:
mod_rewrite模块启用mod_rewrite模块:
打开终端并运行以下命令来启用mod_rewrite模块:
sudo a2enmod rewrite
重启Apache服务: 启用模块后,重启Apache服务以使更改生效:
sudo systemctl restart apache2
配置防盗链:
编辑你的网站配置文件。通常,这些文件位于/etc/apache2/sites-available/目录下。你可以编辑主配置文件000-default.conf,或者为特定网站创建一个新的配置文件。
使用你喜欢的文本编辑器打开配置文件,例如:
sudo nano /etc/apache2/sites-available/your-site.conf
在<Directory>或<Location>块中添加以下内容:
<Directory "/var/www/html">
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|svg)$ - [F]
</Directory>
解释:
RewriteEngine On:启用重写引擎。RewriteCond %{HTTP_REFERER} !^$:检查HTTP_REFERER是否为空。RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain\.com [NC]:检查HTTP_REFERER是否不是你的域名。RewriteRule \.(jpg|jpeg|png|gif|svg)$ - [F]:如果条件匹配,返回403 Forbidden状态码。保存并退出: 保存文件并退出编辑器。
启用站点配置: 如果你创建了一个新的配置文件,确保启用它:
sudo a2ensite your-site.conf
重启Apache服务: 再次重启Apache服务以应用更改:
sudo systemctl restart apache2
mod_headers模块启用mod_headers模块:
打开终端并运行以下命令来启用mod_headers模块:
sudo a2enmod headers
重启Apache服务: 启用模块后,重启Apache服务以使更改生效:
sudo systemctl restart apache2
配置防盗链: 编辑你的网站配置文件,例如:
sudo nano /etc/apache2/sites-available/your-site.conf
在<Directory>或<Location>块中添加以下内容:
<Directory "/var/www/html">
Header set Referrer-Policy "no-referrer-when-downgrade"
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|svg)$ - [F]
</Directory>
解释:
Header set Referrer-Policy "no-referrer-when-downgrade":设置Referrer策略。保存并退出: 保存文件并退出编辑器。
启用站点配置: 如果你创建了一个新的配置文件,确保启用它:
sudo a2ensite your-site.conf
重启Apache服务: 再次重启Apache服务以应用更改:
sudo systemctl restart apache2
通过以上步骤,你可以在Ubuntu上配置Apache2以防止防盗链。选择适合你需求的方法进行配置即可。