在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以防止防盜鏈。選擇適合你需求的方法進行配置即可。