在 CentOS 系統中,Apache2 服務器可以通過配置 .htaccess
文件或直接修改 Apache 配置文件來實現防盜鏈功能。以下是兩種方法的詳細步驟:
.htaccess
文件創建或編輯 .htaccess
文件:
在你的網站根目錄下創建一個 .htaccess
文件(如果已經存在則直接編輯),并添加以下內容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
</IfModule>
解釋:
RewriteEngine On
:啟用重寫引擎。RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
:檢查請求的來源是否不是你的域名(忽略大小寫)。RewriteCond %{HTTP_REFERER} !^$
:確保請求的來源不是空。RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
:如果條件匹配,則返回 403 Forbidden 狀態碼,并停止進一步處理。保存并關閉 .htaccess
文件。
編輯 Apache 配置文件:
打開 Apache 的主配置文件,通常位于 /etc/httpd/conf/httpd.conf
或 /etc/apache2/apache2.conf
,具體路徑取決于你的 CentOS 版本。
sudo vi /etc/httpd/conf/httpd.conf
添加防盜鏈配置:
在配置文件中找到 <Directory>
或 <Location>
塊,添加以下內容:
<Directory "/var/www/html">
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
</Directory>
解釋:
RewriteEngine On
:啟用重寫引擎。RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
:檢查請求的來源是否不是你的域名(忽略大小寫)。RewriteCond %{HTTP_REFERER} !^$
:確保請求的來源不是空。RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
:如果條件匹配,則返回 403 Forbidden 狀態碼,并停止進一步處理。保存并關閉配置文件。
重啟 Apache 服務: 使配置生效,需要重啟 Apache 服務:
sudo systemctl restart httpd
或者
sudo systemctl restart apache2
確保你的服務器啟用了 mod_rewrite
模塊??梢酝ㄟ^以下命令啟用:
sudo a2enmod rewrite
或者
sudo systemctl enable mod_rewrite
防盜鏈配置中的域名應替換為你自己的域名。
防盜鏈規則可以根據需要調整,例如添加更多的文件類型或使用更復雜的條件。
通過以上方法,你可以在 CentOS 系統中的 Apache2 服務器上實現防盜鏈功能。