温馨提示×

CentOS Apache如何设置防盗链

小樊
65
2025-04-06 15:56:01
栏目: 智能运维

在CentOS系统中,使用Apache服务器设置防盗链可以通过配置.htaccess文件来实现。以下是详细的步骤:

1. 创建或编辑 .htaccess 文件

首先,找到你想要保护的图片或文件的目录。通常,这个目录会在网站的根目录下或者某个特定的子目录中。

cd /path/to/your/directory

然后,创建一个名为 .htaccess 的文件(如果它还不存在):

touch .htaccess

或者编辑现有的 .htaccess 文件:

nano .htaccess

2. 添加防盗链规则

.htaccess 文件中添加以下内容来设置防盗链:

RewriteEngine On

# 允许的域名列表
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !^https://(www\.)?yourdomain\.com [NC]

# 拒绝访问
RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]

解释:

  • RewriteEngine On:启用重写引擎。
  • RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]:检查HTTP请求头中的Referer字段,如果不是来自指定的域名(例如yourdomain.com),则执行下一条规则。
  • RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]:拒绝访问以.jpg, .jpeg, .png, .gif结尾的文件,并返回403 Forbidden状态码。

3. 允许特定域名访问

如果你希望允许某些特定的域名访问你的资源,可以在RewriteCond中添加这些域名:

RewriteEngine On

# 允许的域名列表
RewriteCond %{HTTP_REFERER} ^http://(www\.)?alloweddomain1\.com [NC]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?alloweddomain2\.com [NC]

# 拒绝访问
RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]

4. 保存并退出

保存 .htaccess 文件并退出编辑器。

5. 测试防盗链设置

最后,测试防盗链设置是否生效。你可以尝试从一个不允许的域名访问你的图片或文件,看看是否返回了403 Forbidden状态码。

注意事项

  • 确保你的Apache服务器启用了mod_rewrite模块。你可以通过以下命令启用它:

    sudo a2enmod rewrite
    sudo systemctl restart httpd
    
  • .htaccess文件的权限设置也很重要。确保它具有适当的读写权限:

    chmod 644 .htaccess
    

通过以上步骤,你应该能够在CentOS系统上使用Apache服务器成功设置防盗链。

0