在 Nginx 中返回404



Apache 配置404禁止软件下载时,可以在虚拟主机配置或允许使用重写规则的目录配置中💯处理,不能把 Nginx 语法直接复制到 .htaccess 文件。



Apache 规则中的路径通常不包含域名和查询字符串,规则顺序会影响最终结果。若站点使用 WordPress、Laravel 或其他前端控制器,应把下载拦截规则放在通用路由规则之前,避免请求先被程序接管。



服务器规则没有生效时,优先确认配置文件是否被当前站点加载,以及💪请求是否经过了另一台 Web 服务器。



配置规则前先确定禁止范围



404禁止软件下载配置后仍能下载时,应按照“请求入口、服务器✨规则、缓存响应、备用路径”的顺序排查,不要只查看浏览器页面显示的文字。



如果站点允许用户上传文件,不能只按文件名后缀判断风险。攻击者可能上传💎无后缀脚本、伪造 MIME 类型文件或利用程序解析漏洞,上传目录应🎉禁止脚本执行,并配合文件权限和内容校验。



404禁止软件下载常见问题排查



配置保存后需要检查语法并平滑重新加载 Nginx,再使用浏览器无痕窗口或请求面板验证状态码。规则只负责拦截 Web 请求,服🚀务器本地进程、管理员账号和其他传输服务仍可能读取原文件。



当目标是让公开安装包链接失效时,返回404配合目录隔离通常足够;当目标是保护付费文件、用户附件或内部资料时,还必须增加应用鉴权、存储隔离和短期授权,单独设置404不能✨构成完整的软件下载保护。



页面显示404但文件依然能下载



要实现404禁止软件下载,核心做⚡法是让服务器在请求进入文件读取或下载响应之前,直接对指定目录、文件扩展名或下载接口返回 HTTP 404。常见配置对象包括 exe、msi、apk、dmg、zip、rar、7z 等文件,也可以只限制某一个下载目录。



Apache 使用 mod_rewrite 时,可以按目录或扩展名返回404。下面示例适合放在对应站💯点配置区域🎨,具体能否放入 .htaccess 取决于主机是否开放重写权限。



上线前验证下载拦截配置,应同时检查正常页面和受保🎉护资源,确保禁止下载没有破坏站点其他功能。



举报/反馈