配置Apache2的防盜鏈功能可以通過修改Apache的配置文件來實現。防盜鏈的目的是防止其他網站直接鏈接到你的服務器上的資源(如圖片、視頻等),從而節省帶寬并保護資源。以下是配置防盜鏈的步驟:
mod_rewrite
模塊啟用mod_rewrite
模塊:
確保mod_rewrite
模塊已經啟用。你可以通過以下命令啟用它:
sudo a2enmod rewrite
編輯Apache配置文件:
編輯你的網站配置文件,通常位于/etc/apache2/sites-available/your-site.conf
。
添加防盜鏈規則:
在<Directory>
或<Location>
塊中添加以下內容:
<Directory "/var/www/html">
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule \.(jpg|jpeg|png|gif|ico|svg)$ - [F,L]
</Directory>
解釋:
RewriteEngine On
:啟用重寫引擎。RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
:檢查HTTP_REFERER是否不是你的域名。RewriteCond %{HTTP_REFERER} !^$
:確保HTTP_REFERER不是空的。RewriteRule \.(jpg|jpeg|png|gif|ico|svg)$ - [F,L]
:如果條件匹配,返回403 Forbidden狀態碼,并停止進一步處理。重啟Apache: 保存配置文件后,重啟Apache以應用更改:
sudo systemctl restart apache2
mod_security
模塊如果你已經安裝了mod_security
模塊,可以使用它來配置防盜鏈。
啟用mod_security
模塊:
確保mod_security
模塊已經啟用。你可以通過以下命令啟用它:
sudo a2enmod security2
編輯Apache配置文件:
編輯你的網站配置文件,通常位于/etc/apache2/sites-available/your-site.conf
。
添加防盜鏈規則:
在<Directory>
或<Location>
塊中添加以下內容:
<Directory "/var/www/html">
SecRule REQUEST_FILENAME "\.(jpg|jpeg|png|gif|ico|svg)$" \
"id:1234567,\
phase:2,\
deny,\
status:403,\
log,\
msg:'Access denied to direct linking'"
</Directory>
解釋:
SecRule REQUEST_FILENAME "\.(jpg|jpeg|png|gif|ico|svg)$"
:匹配請求的文件名是否以指定的圖片擴展名結尾。id:1234567
:規則的唯一標識符。phase:2
:規則在請求處理的第二階段執行。deny
:拒絕訪問。status:403
:返回403 Forbidden狀態碼。log
:記錄日志。msg:'Access denied to direct linking'
:日志消息。重啟Apache: 保存配置文件后,重啟Apache以應用更改:
sudo systemctl restart apache2
通過以上步驟,你可以有效地配置Apache2的防盜鏈功能,保護你的資源不被非法鏈接。