在Apache2中實現防盜鏈功能,可以通過配置mod_rewrite
模塊來實現。以下是具體的步驟:
mod_rewrite
模塊首先,確保mod_rewrite
模塊已經啟用。你可以通過以下命令來啟用它:
sudo a2enmod rewrite
然后重啟Apache2服務:
sudo systemctl restart apache2
編輯你的網站配置文件,通常位于/etc/apache2/sites-available/
目錄下。假設你的網站配置文件是yourdomain.com.conf
,你可以使用以下步驟來配置防盜鏈。
.htaccess
文件在你的網站根目錄下創建一個.htaccess
文件(如果還沒有的話)。這個文件將包含防盜鏈的規則。
cd /var/www/yourdomain.com/html
touch .htaccess
.htaccess
文件使用你喜歡的文本編輯器打開.htaccess
文件,例如:
nano .htaccess
在文件中添加以下內容:
RewriteEngine On
# 允許的域名列表
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !^https://(www\.)?yourdomain\.com [NC]
# 阻止訪問
RewriteRule \.(jpg|jpeg|png|gif|ico)$ - [F]
解釋:
RewriteEngine On
:啟用重寫引擎。RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
:檢查HTTP_REFERER是否不是你的域名(不區分大小寫)。RewriteCond %{HTTP_REFERER} !^https://(www\.)?yourdomain\.com [NC]
:檢查HTTPS_REFERER是否不是你的域名(不區分大小寫)。RewriteRule \.(jpg|jpeg|png|gif|ico)$ - [F]
:如果條件匹配,則返回403 Forbidden狀態碼,阻止訪問圖片文件。保存.htaccess
文件并退出編輯器。然后重啟Apache2服務以確保配置生效:
sudo systemctl restart apache2
現在,當其他網站嘗試引用你的圖片資源時,如果它們的HTTP_REFERER不是你的域名,將會收到403 Forbidden錯誤。
.htaccess
文件。有些主機提供商可能不允許使用.htaccess
文件,這種情況下你需要在主配置文件中進行相應的設置。通過以上步驟,你應該能夠在Apache2中成功實現防盜鏈功能。