在Ubuntu上使用Apache服務器實現防盜鏈功能,可以通過配置Apache的.htaccess
文件或直接編輯Apache的主配置文件來實現。以下是兩種常見的方法:
.htaccess
文件創建或編輯 .htaccess
文件:
在你的網站根目錄下創建一個名為 .htaccess
的文件(如果已經存在,則直接編輯它)。
添加防盜鏈規則:
在 .htaccess
文件中添加以下內容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
</IfModule>
解釋:
RewriteEngine On
:啟用重寫引擎。RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
:檢查請求的Referer頭是否不是來自你的域名(不區分大小寫)。RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
:如果Referer不符合條件,則返回403 Forbidden狀態碼,并停止進一步處理。你可以根據需要調整文件擴展名和域名。
找到 Apache 配置文件:
通常位于 /etc/apache2/apache2.conf
或 /etc/apache2/sites-available/your-site.conf
。
添加防盜鏈規則:
在 <Directory>
或 <Location>
塊中添加以下內容:
<Directory "/var/www/html">
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
</Directory>
解釋與方法一相同。
重啟 Apache 服務: 保存配置文件后,重啟Apache服務以使更改生效:
sudo systemctl restart apache2
確保你的Apache服務器啟用了 mod_rewrite
模塊。你可以通過以下命令啟用它:
sudo a2enmod rewrite
sudo systemctl restart apache2
防盜鏈規則可能會影響正常用戶的訪問,因此請確保你的規則不會誤傷合法用戶。
如果你的網站使用的是HTTPS,請確保Referer頭的檢查也適用于HTTPS。
通過以上方法,你可以在Ubuntu上的Apache服務器上實現基本的防盜鏈功能。