使用Apache2實現防盜鏈(Hotlink Protection)可以防止其他網站直接鏈接并顯示你的圖片、視頻或其他資源。以下是詳細的步驟和配置方法:
mod_rewrite
模塊啟用mod_rewrite
模塊:
確保你的Apache2服務器已經啟用了mod_rewrite
模塊。你可以通過以下命令啟用它:
sudo a2enmod rewrite
編輯.htaccess
文件:
在你的網站根目錄下創建或編輯.htaccess
文件,添加以下內容:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule \.(jpg|jpeg|png|gif|svg|mp4|avi|mov)$ - [F,L]
解釋:
RewriteEngine On
:啟用重寫引擎。RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
:檢查HTTP請求頭中的Referer
字段,如果不是來自你的域名,則拒絕訪問。RewriteCond %{HTTP_REFERER} !^$
:確保Referer
字段不為空。RewriteRule \.(jpg|jpeg|png|gif|svg|mp4|avi|mov)$ - [F,L]
:匹配特定文件類型(如圖片和視頻),并返回403 Forbidden狀態碼。重啟Apache2服務器:
保存.htaccess
文件后,重啟Apache2服務器以使更改生效:
sudo systemctl restart apache2
mod_headers
模塊啟用mod_headers
模塊:
確保你的Apache2服務器已經啟用了mod_headers
模塊。你可以通過以下命令啟用它:
sudo a2enmod headers
編輯.htaccess
文件:
在你的網站根目錄下創建或編輯.htaccess
文件,添加以下內容:
<IfModule mod_headers.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !^$
Header set X-Frame-Options "SAMEORIGIN"
Header set Content-Security-Policy "frame-ancestors 'self'"
</IfModule>
解釋:
RewriteEngine On
:啟用重寫引擎。RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
:檢查HTTP請求頭中的Referer
字段,如果不是來自你的域名,則拒絕訪問。Header set X-Frame-Options "SAMEORIGIN"
:防止點擊劫持。Header set Content-Security-Policy "frame-ancestors 'self'"
:限制資源只能通過同源頁面加載。重啟Apache2服務器:
保存.htaccess
文件后,重啟Apache2服務器以使更改生效:
sudo systemctl restart apache2
通過以上步驟,你可以有效地使用Apache2實現防盜鏈功能,保護你的網站資源不被濫用。