centos

如何配置Apache防盗链

小樊
42
2025-04-26 20:03:06
栏目: 编程语言

配置Apache防盗链可以通过修改Apache的配置文件来实现。防盗链的目的是防止其他网站未经授权地引用你的图片、视频或其他资源。以下是一个基本的步骤指南:

方法一:使用mod_rewrite模块

  1. 启用mod_rewrite模块: 确保你的Apache服务器已经启用了mod_rewrite模块。你可以在终端或命令提示符中运行以下命令来启用它:

    sudo a2enmod rewrite
    

    然后重启Apache服务器:

    sudo systemctl restart apache2
    
  2. 编辑.htaccess文件: 在你的网站根目录下创建或编辑.htaccess文件。这个文件允许你定义URL重写规则。

    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
        RewriteRule \.(jpg|jpeg|png|gif|swf)$ - [F,L]
    </IfModule>
    

    解释:

    • RewriteEngine On:启用重写引擎。
    • RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]:检查HTTP请求头中的Referer字段,如果不是来自你的域名,则拒绝访问。
    • RewriteRule \.(jpg|jpeg|png|gif|swf)$ - [F,L]:匹配图片和视频文件,并返回403 Forbidden状态码。

方法二:使用mod_headers模块

  1. 启用mod_headers模块: 确保你的Apache服务器已经启用了mod_headers模块。你可以在终端或命令提示符中运行以下命令来启用它:

    sudo a2enmod headers
    

    然后重启Apache服务器:

    sudo systemctl restart apache2
    
  2. 编辑.htaccess文件: 在你的网站根目录下创建或编辑.htaccess文件。

    <IfModule mod_headers.c>
        SetEnvIf Referer "^$" dontlog
        SetEnvIf Referer ".*yourdomain\.com" dontlog
        SetEnvIf Referer ".*yourdomain\.com.*" dontlog
        Header set X-Robots-Tag "noindex, nofollow" env=dontlog
        Header set Content-Security-Policy "default-src 'self'; img-src 'self' data:; script-src 'self';"
    </IfModule>
    

    解释:

    • SetEnvIf Referer "^$" dontlog:设置一个环境变量dontlog,如果Referer为空(即直接访问)。
    • SetEnvIf Referer ".*yourdomain\.com" dontlog:设置一个环境变量dontlog,如果Referer来自你的域名。
    • SetEnvIf Referer ".*yourdomain\.com.*" dontlog:设置一个环境变量dontlog,如果Referer包含你的域名。
    • Header set X-Robots-Tag "noindex, nofollow" env=dontlog:设置X-Robots-Tag头,防止搜索引擎索引这些资源。
    • Header set Content-Security-Policy "default-src 'self'; img-src 'self' data:; script-src 'self';":设置内容安全策略,限制资源的来源。

注意事项

通过以上步骤,你可以有效地配置Apache防盗链,保护你的网站资源不被未经授权的引用。

0
看了该问题的人还看了