CentOS Apache2 怎么设置防盗链

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

1. 创建或编辑 .htaccess 文件

首先,找到你想要保护图片或视频资源的目录。通常,这些资源会放在 public_htmlwww 目录下。

在该目录下创建一个 .htaccess 文件(如果已经存在,则直接编辑它):

cd /path/to/your/directory
touch .htaccess
nano .htaccess

2. 添加防盗链规则

.htaccess 文件中添加以下内容:

RewriteEngine On

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

# 如果不符合条件,则返回 403 Forbidden
RewriteRule \.(jpg|jpeg|png|gif|mp4|avi|mov)$ - [F]

解释:

  • RewriteEngine On:启用 URL 重写引擎。
  • RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]:检查请求的 Referer 头是否不是来自你的域名。
  • RewriteCond %{HTTP_REFERER} !^https://(www\.)?yourdomain\.com [NC]:检查请求的 Referer 头是否不是来自你的域名(包括 HTTPS)。
  • RewriteRule \.(jpg|jpeg|png|gif|mp4|avi|mov)$ - [F]:如果上述条件都满足,则返回 403 Forbidden 状态码。

3. 保存并退出

保存 .htaccess 文件并退出编辑器(在 nano 中按 Ctrl+X,然后按 Y 确认保存,最后按 Enter)。

4. 测试防盗链设置

为了测试防盗链设置是否生效,你可以尝试从其他域名访问受保护的资源。如果防盗链设置正确,你应该会看到 403 Forbidden 错误。

注意事项

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

    sudo a2enmod rewrite
    sudo systemctl restart httpd
    
  • 如果你使用的是 HTTPS,请确保在 .htaccess 文件中同时检查 HTTP 和 HTTPS 的 Referer 头。

  • 防盗链设置可能会影响用户体验,因为一些浏览器或代理服务器可能不会发送 Referer 头。因此,在实际应用中,你可能需要根据具体情况调整防盗链规则。

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