在 Apache 中返回404



下载拦截规则应先明确限制范围,再选择按目录、按扩展名或按接口处理🌺,否则容易误伤网站附件、后台更新包和正常页面资源。



Nginx 按文件类型拦截适😎合多个目录都存在安装包或压缩包的站点,下面的扩展名仅作为示例,应根据实际业务增删。



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



动态下载接口是许多“文件仍然能下载”问题的根🌅源,因为请求地址可能是 download?id=123、file/name 或无后缀路径,静态文件扩展名规则对此没有作用。



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



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



部分文件被拦截,部分文件仍可访问



防盗链只能减少部分外站嵌入🔮,不能代替访问控制。没有登录校验、可长期复用的直链和公开文件目录,仍然可能被批量下载。



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



Nginx 配置404禁止软件下载时,可以使用目录规则或扩展名规则,并把规🎇则放在实际处理静态文▶️件的服务配置中。



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



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



动态下载接口和缓存节点不能漏掉



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



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



为什么用404禁止软件下载,而不是直接删除文件



Nginx 按下载目录拦截适合资源位置固定的站点,目录内的文件不论🔮后缀是什么都💫会返回404。



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



CDN、反向代理和浏览器缓存可能继续提供此前已经缓存的文件,因此源站新增拦截规则后,还要清理对应缓存并确认缓存节点没有返回旧的200响应。



举报/反馈