在Ubuntu上配置Apache服務器以實現防盜鏈,可以通過以下步驟來完成:
如果你還沒有安裝Apache,可以使用以下命令進行安裝:
sudo apt update
sudo apt install apache2
防盜鏈通常是通過檢查HTTP請求頭中的Referer字段來實現的。你可以使用Apache的mod_rewrite模塊來實現這一功能。
mod_rewrite首先,確保mod_rewrite模塊已經啟用:
sudo a2enmod rewrite
.htaccess文件在你的網站根目錄下創建或編輯.htaccess文件。例如,如果你的網站根目錄是/var/www/html,則在該目錄下創建或編輯.htaccess文件:
sudo nano /var/www/html/.htaccess
在.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]:檢查Referer字段是否不是你的域名(不區分大小寫)。RewriteCond %{HTTP_REFERER} !^https://(www\.)?yourdomain\.com [NC]:檢查Referer字段是否不是你的域名(不區分大小寫)。RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]:如果Referer字段不符合條件,則返回403 Forbidden狀態碼,并停止進一步處理。保存并關閉.htaccess文件后,重啟Apache服務器以使更改生效:
sudo systemctl restart apache2
嘗試從其他域名訪問你的圖片資源,應該會收到403 Forbidden響應。
.htaccess文件的語法正確,否則可能會導致服務器錯誤。RewriteCond中添加更多的條件。通過以上步驟,你可以在Ubuntu上配置Apache服務器以實現防盜鏈功能。