ubuntu

如何通过Apache配置实现防盗链

小樊
37
2025-03-15 01:50:55
栏目: 编程语言

防盗链(Hotlink Protection)是一种防止其他网站直接链接到你的服务器上的资源(如图片、视频、CSS、JavaScript等),从而节省带宽和保护资源的技术。通过Apache服务器,你可以使用mod_rewrite模块来实现防盗链。以下是一个基本的防盗链配置示例:

  1. 启用mod_rewrite模块: 确保你的Apache服务器已经启用了mod_rewrite模块。你可以在Apache配置文件(通常是httpd.confapache2.conf)中找到以下行并确保它们没有被注释掉:

    LoadModule rewrite_module modules/mod_rewrite.so
    
  2. 配置防盗链: 在你的网站根目录下的.htaccess文件中添加以下配置:

    RewriteEngine On
    
    # 允许的引用站点列表
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
    RewriteCond %{HTTP_REFERER} !^$
    
    # 阻止访问
    RewriteRule \.(jpg|jpeg|png|gif|css|js)$ - [F,L]
    

    解释:

    • RewriteEngine On:启用重写引擎。
    • RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]:检查请求的引用页(referrer)是否不是来自你的域名(不区分大小写)。
    • RewriteCond %{HTTP_REFERER} !^$:确保引用页不为空。
    • RewriteRule \.(jpg|jpeg|png|gif|css|js)$ - [F,L]:如果引用页不符合条件,则返回403 Forbidden状态码,并停止进一步处理。
  3. 允许特定域名访问: 如果你希望允许某些特定的域名访问你的资源,可以在RewriteCond中添加这些域名:

    RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC]
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?trusteddomain1\.com [NC]
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?trusteddomain2\.com [NC]
    
  4. 测试配置: 保存.htaccess文件并重新加载Apache服务器以应用更改。你可以使用以下命令重新加载Apache:

    sudo systemctl reload apache2
    

    或者如果你使用的是其他系统管理工具,请相应地调整命令。

通过以上步骤,你可以实现基本的防盗链功能。根据你的具体需求,你可能需要进一步调整和优化配置。

0
看了该问题的人还看了