在CentOS系統中配置Apache防盜鏈,可以通過修改Apache的配置文件來實現。以下是詳細的步驟:
首先,你需要編輯Apache的主配置文件httpd.conf
或apache2.conf
,通常位于/etc/httpd/conf/
或/etc/apache2/
目錄下。
sudo vi /etc/httpd/conf/httpd.conf
在配置文件中找到<Directory>
或<Location>
塊,添加以下防盜鏈規則:
<Directory "/var/www/html">
# 允許的域名列表
SetEnvIf Referer "^http(s)?://(www\.)?example\.com$" allow_referer
SetEnvIf Referer "^$" deny_referer
# 拒絕所有其他引用
Order allow,deny
Allow from env=allow_referer
Deny from all
</Directory>
在這個例子中:
SetEnvIf Referer "^http(s)?://(www\.)?example\.com$" allow_referer
:允許來自example.com
及其子域名的引用。SetEnvIf Referer "^$" deny_referer
:拒絕沒有引用來源的請求。Order allow,deny
:設置允許和拒絕的順序。Allow from env=allow_referer
:只允許來自allow_referer
環境的請求。Deny from all
:拒絕所有其他請求。如果你希望更靈活地控制防盜鏈規則,可以在網站的根目錄下創建或編輯.htaccess
文件。
sudo vi /var/www/html/.htaccess
然后在.htaccess
文件中添加以下內容:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
在這個例子中:
RewriteEngine On
:啟用重寫引擎。RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example\.com [NC]
:檢查引用來源是否不是example.com
及其子域名。RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
:如果條件匹配,則返回403 Forbidden狀態碼。修改配置文件后,需要重啟Apache服務以使更改生效。
sudo systemctl restart httpd
或者如果你使用的是舊版本的CentOS:
sudo service httpd restart
最后,你可以通過訪問你的網站并嘗試從不同的域名引用圖片來測試防盜鏈配置是否生效。
通過以上步驟,你可以在CentOS系統中成功配置Apache防盜鏈。