在 CentOS 系统中,Apache2 服务器可以通过配置 .htaccess 文件或直接修改 Apache 配置文件来实现防盗链功能。以下是两种方法的详细步骤:
.htaccess 文件创建或编辑 .htaccess 文件:
在需要防盗链的目录下创建一个 .htaccess 文件(如果已经存在则直接编辑),例如 /var/www/html/images/。
cd /var/www/html/images/
touch .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]:检查请求的 Referer 头是否不是来自你的域名(忽略大小写)。RewriteCond %{HTTP_REFERER} !^$:确保 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> 块中添加以下内容:
<Directory "/var/www/html/images">
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
</Directory>
解释:
<Directory "/var/www/html/images">:指定需要防盗链的目录。.htaccess 文件中的规则相同。保存并退出: 保存配置文件并退出编辑器。
重启 Apache 服务: 使配置生效,重启 Apache 服务:
sudo systemctl restart httpd
或者
sudo systemctl restart apache2
通过以上两种方法,你可以在 CentOS 系统中的 Apache2 服务器上实现防盗链功能。选择适合你的方法进行配置即可。