欢迎访问艾立兹站 Aliz- 专注建站教程与技术分享
您当前的位置:首页 > 建站教程 > 帝国 CMS 教程

帝国 CMS‑Nginx 完整防盗链配置教程

时间:2026-08-10 10:52:29  来源:aliz.cn  作者:SKY  阅读:

一、防盗链原理


依靠请求头Referer判断访问来源; 仅放行本站域名、空引荐、百度、搜狗等爬虫; 拦截其他外部网站直接加载图片、附件资源。
帝国 CMS 所有上传附件默认存放目录:/e/data/,防护重点为此文件夹。

二、Nginx 站点配置代码


打开网站对应的 nginx‑conf 配置,在 server {} 内部粘贴下面规则:
nginx
location ~* ^/e/data/(.*)\.(jpg|jpeg|png|gif|bmp|webp|zip|rar|7z|txt|js|css)$
{
    valid_referers none blocked server_names
    *.aliz.cn
    baidu.com bing.com sogou.com so.com qq.com;

    if ($invalid_referer)
    {
        # 返回一张防盗链占位图,或者直接返回403
        return 403;
    }
}

参数解释

  1. none:允许直接地址访问、浏览器无痕模式(无 referer)
  2. blocked:允许引荐头被防火墙隐藏的访客
  3. server_names:代表当前本站域名
  4. 后面追加各大搜索引擎域名,防止爬虫抓取图片失败

三、进阶优化:图片被盗链展示提示图


如果你不想直接返回 403 报错,可以设置盗链时输出自定义禁止盗链图片:
nginx
location ~* ^/e/data/(.*)\.(jpg|jpeg|png|gif|webp)$
{
    valid_referers none blocked server_names *.aliz.cn baidu.com bing.com;
    if ($invalid_referer){
        rewrite ^/e/data/.*$ /images/no‑link.png redirect;
    }
}

提前将no‑link.png上传至网站根目录 images 文件夹。

四、常见踩坑以及解决办法


1、微信分享、QQ 预览图片变成空白
配置务必带上none参数,移动端客户端经常不会携带访问来源 Referer。

2、后台编辑器图片加载失败
把你的全站域名全部写入 valid_referers,包含 www 和不带 www 域名。

3、需要放行 CDN 加速 IP 若是站点使用 CDN,防盗链建议改为 IP 白名单方式,不要依靠 Referer 校验。

五、Apache/IIS 简易防盗链备选

Apache .htaccess


apache
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !aliz.cn [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteRule ^e/data/ - [F]

IIS web.config 规则


xml
<rule name="图片防盗链" stopProcessing="true">
<match url="^e/data/(.*)\.(png|jpg|gif|webp)$" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_REFERER}" pattern="aliz.cn" negate="true" />
<add input="{HTTP_REFERER}" pattern="^$" negate="true" />
</conditions>
<action type="CustomResponse" statusCode="403" subStatusCode="0" statusReason="禁止外部盗链" statusDescription="资源禁止外链引用" />
</rule>

六、长期安全建议

  1. 定期修改附件目录,高危下载资源增加随机文件名;
  2. 大型附件使用 PHP 临时授权访问,生成短期有效 URL;
  3. 开启 Nginx 日志,时常查看 403 盗链请求记录。

本文配套模板、静态源码可前往艾立兹素材库alisucai.com下载

发表评论 共有0条评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
公众号二维码

扫码关注公众号
获取全套技术教程