首页 > 解决方案 > IIS 请求过滤文件扩展名允许带有点的目录

问题描述

我们在 web.config 中对文件扩展名使用请求过滤,如下所示:

<fileExtensions allowUnlisted="false">
    <add fileExtension="." allowed="true" />
    <add fileExtension=".aspx" allowed="true" />
    <add fileExtension=".ashx" allowed="true" />
    <add fileExtension=".asmx" allowed="true" />
    <add fileExtension=".axd" allowed="true" />
    <add fileExtension=".html" allowed="true" />
    <add fileExtension=".htm" allowed="true" />

然而我们遇到了一个问题。当我们转到一个带有一个点的目录的 url 时,例如“https://localhost/myamazing.folder”,它会返回一个“HTTP Error 404.7 - Not Found”,因为它现在认为它不是一个扩展名允许。

当 allowUnlisted 设置为 true 或没有任何过滤时,iis 将执行礼貌重定向,因为它是一个文件夹。无论如何在过滤扩展的同时保持这种重定向行为不变?

标签: iisrequestfiltering

解决方案


这是 iis 默认安全设置,如果您想允许未指定的扩展,您需要通过使用启用它

另一种方法是设置允许文件扩展名,然后通过以下步骤设置允许 URL:

在“URL”选项卡中允许 URL 列表 -> 添加您只想允许的 URL。这就是它将 URL /myamazing.folder 重定向到 /myamazing.folder/ 的方式

在此处输入图像描述

如果您使用的是 asp.net mvc 站点,您可以参考以下链接:

URL 中的点导致 404 与 ASP.NET mvc 和 IIS


推荐阅读