在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
在
或
块中添加以下内容:RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain\.com [NC] RewriteRule \.(jpg|jpeg|png|gif|svg)$ - [F] 解释:
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
在
或
块中添加以下内容: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] 解释:
Header set Referrer-Policy "no-referrer-when-downgrade"
:设置Referrer策略。- 其余部分与方法一相同。
-
保存并退出: 保存文件并退出编辑器。
-
启用站点配置: 如果你创建了一个新的配置文件,确保启用它:
sudo a2ensite your-site.conf
-
重启Apache服务: 再次重启Apache服务以应用更改:
sudo systemctl restart apache2
通过以上步骤,你可以在Ubuntu上配置Apache2以防止防盗链。选择适合你需求的方法进行配置即可。