在Ubuntu上使用Apache2實現防盜鏈功能,可以通過配置.htaccess
文件來實現。以下是詳細的步驟:
.htaccess
文件首先,你需要找到或創建一個 .htaccess
文件。這個文件通常位于你的網站根目錄下(例如 /var/www/html/
)。
sudo nano /var/www/html/.htaccess
在 .htaccess
文件中添加以下內容:
RewriteEngine On
# 允許的域名列表
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com [NC]
RewriteCond %{HTTP_REFERER} !^https://(www\.)?example\.com [NC]
# 阻止訪問
RewriteRule \.(jpg|jpeg|png|gif)$ - [F]
解釋:
RewriteEngine On
:啟用重寫引擎。RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com [NC]
:檢查HTTP_REFERER是否不是來自指定的域名(例如 example.com
)。[NC]
表示不區分大小寫。RewriteCond %{HTTP_REFERER} !^https://(www\.)?example\.com [NC]
:同上,但用于HTTPS。RewriteRule \.(jpg|jpeg|png|gif)$ - [F]
:如果滿足上述條件,則阻止訪問圖片文件(你可以根據需要修改文件類型)。按 Ctrl + X
,然后按 Y
確認保存,最后按 Enter
退出編輯器。
嘗試從不允許的域名訪問你的網站上的圖片或其他受保護的資源,應該會被阻止。
.htaccess
文件進行防盜鏈可能會對服務器性能產生一定影響,因為每次請求都需要檢查HTTP_REFERER。.htaccess
文件位于正確的目錄下,并且Apache2配置允許使用 .htaccess
文件進行重寫。如果你希望更靈活地控制防盜鏈規則,可以考慮使用Apache2的 mod_rewrite
模塊進行更復雜的配置。例如:
RewriteEngine On
# 允許的域名列表
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com [NC]
RewriteCond %{HTTP_REFERER} !^https://(www\.)?example\.com [NC]
# 阻止訪問特定目錄下的文件
RewriteRule ^protected/.*\.(jpg|jpeg|png|gif)$ - [F]
這樣,你可以更精確地控制哪些目錄下的文件受到防盜鏈保護。
通過以上步驟,你應該能夠在Ubuntu上使用Apache2實現基本的防盜鏈功能。