防盜鏈(Hotlink Protection)是一種防止其他網站直接鏈接到你的服務器上的資源(如圖片、視頻、CSS、JavaScript等),從而節省帶寬和保護資源的技術。通過Apache服務器,你可以使用mod_rewrite模塊來實現防盜鏈。以下是一個基本的防盜鏈配置示例:
啟用mod_rewrite模塊:
確保你的Apache服務器已經啟用了mod_rewrite模塊。你可以在Apache配置文件(通常是httpd.conf或apache2.conf)中找到以下行并確保它們沒有被注釋掉:
LoadModule rewrite_module modules/mod_rewrite.so
配置防盜鏈:
在你的網站根目錄下的.htaccess文件中添加以下配置:
RewriteEngine On
# 允許的引用站點列表
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !^$
# 阻止訪問
RewriteRule \.(jpg|jpeg|png|gif|css|js)$ - [F,L]
解釋:
RewriteEngine On:啟用重寫引擎。RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]:檢查請求的引用頁(referrer)是否不是來自你的域名(不區分大小寫)。RewriteCond %{HTTP_REFERER} !^$:確保引用頁不為空。RewriteRule \.(jpg|jpeg|png|gif|css|js)$ - [F,L]:如果引用頁不符合條件,則返回403 Forbidden狀態碼,并停止進一步處理。允許特定域名訪問:
如果你希望允許某些特定的域名訪問你的資源,可以在RewriteCond中添加這些域名:
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?trusteddomain1\.com [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?trusteddomain2\.com [NC]
測試配置:
保存.htaccess文件并重新加載Apache服務器以應用更改。你可以使用以下命令重新加載Apache:
sudo systemctl reload apache2
或者如果你使用的是其他系統管理工具,請相應地調整命令。
通過以上步驟,你可以實現基本的防盜鏈功能。根據你的具體需求,你可能需要進一步調整和優化配置。