我收到文件扩展名的 404 错误。我确实在扩展名过滤器中允许了它,但没有解决,而在 MIME 类型中则没问题。那么添加文件扩展名的目的是什么?
答案1
如果未定义 MIME 类型,IIS 将返回 404.3 代码。显然这是设计使然。
简而言之,MIME 类型是 IIS 用来确定如何管理特定文件类型的设置。例如,IIS 将为 .html 扩展名设置一个 MIME 类型,这将指示客户端 Web 浏览器将文件视为文本,而 .mpg 文件的 MIME 类型则配置为视频文件,这将需要 Web 浏览器之外的外部应用程序。Windows 文件关联的工作方式非常相似。归根结底,它只是一种方法,用于 IIS 能够指示客户端如何处理正在传送的文件。
从 IIS v7 开始,“扩展名过滤”(请求过滤 -> 文件扩展名)成为 IIS 的一部分。对于 IIS v7.0,您必须下载管理包拥有它。
请求过滤是内置的安全此功能取代了 IIS 6.0 的 UrlScan 插件提供的大部分功能。当请求筛选阻止 HTTP 请求时,IIS 7 将向客户端返回 HTTP 404 错误,并使用唯一子状态记录 HTTP 状态,该子状态标识请求被拒绝的原因。404.7 = 文件扩展名被拒绝。
借助请求过滤,您可以将网站/应用程序配置为不提供具有特定扩展名的文件,否则这些文件将可供下载。仅举一个例子(不是最好的,但是):假设任何 *.inc 文件都将以纯文本形式提供,但您的一个网站将此扩展名用于其他目的(例如,存储一些配置详细信息)。借助请求过滤,可以轻松实现这一点。
您还可以以其他方式进行配置——拒绝除明确允许的扩展之外的所有扩展(仅适用于静态文件)。