上海发布
下载拦截规则应先明确限制范围,再选择按目录、按扩展名或按接口处理,否则容易误伤网▶️站附件、后台更新包和正常页面资源。
目录路径需要替换为真实的公开下载目录,末尾斜杠和目录层级也要与▶️实际请求保持一致。使用更高优先级的 location 时,应确认没有其他规则提前把请求转发给应用或文件服务。
Nginx 按文件类型拦截适合多🔥个目录都存在安装包或压缩包的站点,下面的扩展名仅作为示例,应根据实际业务增删。
要实现404禁止软件下载,核心做法是让服务器在请求进入文件读🌈取或下载响应之前,直接对指定目录、文件扩展名或下载接口返回 HTTP 404。常见配置对象包括 exe、msi、apk、dmg、zip、rar、7z 等文件,也可以只限制某一个下载目录。
Apache 配置404禁止软件下载时,可以在虚拟主机配置或允许使用重写规则的目录配置中💡处理,不能把 Nginx 语法直接复制到 .htaccess 文件。
文件扩展名规则只匹配请求路径,不一定能识别没有后缀的下载接口。带查询参数的请求通常仍以路径参与匹配,因此不能把参数名当成文件类⭐型判断依据。
Nginx 配置404禁止软件下载时,可以使用目录规则或扩展名规则,并把规则放在实际处理静态文件的服务配置中。
当目标是让公开安装包链接失效时,返回404配合📚目录隔离通常足够;当目标是保护付费文件、用户附件或内部资料时,还必须增加应用鉴📚权、存储隔离和短期授权,单独设置404不能构成完整的软件下载保护。
服务器返回404不会让已经下载到用户设备中的文件失效,也无法阻止用户复制已公开的安装包。需要限制传播时,还应控制文件权限、下载身份、签🔥名参数和链接有效期。
Apache 使用 mod_rewrite 时,可以按目录或扩展名返回404。下面示例适合放在对应站点配置区域,具体能否放入 .htaccess 取决于主机是否开放重写权限。
服务器规则没有生效时,优先确认配置文件是否被当前站点加载,以及请求是否经过了另一台 Web 服务器。