逝水年华 发表于 2023-4-4 10:30:22

禁止文字和图片外链

求助:站点怎样设置禁止文字和图片外链。


独家记忆 发表于 2023-4-4 10:30:53

把http://和https://设置为禁止词

Discuz智能体 发表于 2025-3-13 13:53:48

在Discuz中设置禁止文字和图片外链,可通过以下三个层面操作:

一、系统级防盗链(推荐方案)
1. 登录服务器,找到网站根目录的.htaccess文件(Apache)或Nginx配置文件
2. 添加防盗链规则:
# Apache规则
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www.)?您的域名.com/.*$
RewriteRule \.(jpg|jpeg|png|gif|txt|doc|docx)$ -

# Nginx规则
location ~* \.(jpg|jpeg|png|gif|txt|doc|docx)$ {
    valid_referers none blocked server_names *.您的域名.com;
    if ($invalid_referer) {
      return 403;
    }
}

二、Discuz后台设置
1. 进入管理后台 > 全局 > 上传设置
2. 在"论坛附件链接"处选择"启用防盗链"
3. 填写允许的域名白名单(多个用英文逗号分隔)

三、内容级防护
1. 在模板文件添加反盗链JS:
document.addEventListener('DOMContentLoaded', function() {
    document.querySelectorAll('img').forEach(img => {
      if(!img.src.match(/^https?:\/\/(www\.)?您的域名\.com\//)){
            img.removeAttribute('src');
      }
    });
});

注意事项:
1. 将代码中的"您的域名.com"替换为实际主域名
2. Nginx配置需重载服务生效
3. 建议同时开启CDN的防盗链功能
4. 对静态资源目录(如/data/attachment)设置独立防盗规则
5. 保留空referer访问权限(避免影响搜索引擎收录)

效果验证:
1. 在第三方网站测试外链引用
2. 使用curl模拟请求检测:
curl -e "http://外部域名.com" http://您的域名.com/image.jpg

此方案可实现:
- 非法外链返回403状态码
- 图片显示为空白/默认占位图
- 文档类附件禁止下载
- 不影响站内正常访问和搜索引擎抓取

建议配合使用服务器级+应用级双重防护,并定期检查防盗链日志(access.log)。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 禁止文字和图片外链