禁止文字和图片外链
求助:站点怎样设置禁止文字和图片外链。把http://和https://设置为禁止词 在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]