applicationHost.config 中未显示 IIS 请求筛选器规则

IIS request filter rules not showing in applicationHost.config

我开始使用请求过滤器来阻止机器人流量。 我从一个示例 .htaccess 文件开始,请参阅此处:

我不想通过笨拙的 IIS 界面手动添加大量规则,所以我宁愿将它们直接添加到文件中。我以为这些规则会在 applicationHost.config 中(基于 this post),但在打开 %WINDIR%\System32\inetsrv\config\applicationHost.config 时,我没有看到任何规则。 我也看到了 ,所以我尝试用 Notepad++ 和 Windows 记事本打开文件,但我仍然没有看到我在 IIS 中创建的规则。

为什么不呢?

IIS 有一个分布式配置系统,正如 Lex Li 所提到的,一个很好的熟悉资源是:https://docs.microsoft.com/en-us/iis/get-started/planning-your-iis-architecture/the-configuration-system-in-iis-7

您的配置更改无疑进入了 web.config 文件。配置的位置根据配置而改变,但默认情况下,请求过滤将转到您正在设置的最低配置文件。换句话说,如果您正在为站点配置请求过滤,它将转到该站点的 web.config。如果您在子目录中进行配置,它将转到该子目录的 web.config。您实际上可以影响设置的位置(即站点特定配置可以转到 ApplicaitonHost.config),并且通过命令行更容易。

如果您查看 ScanHeaders 文档中的 AppCmd.exe 示例,这些命令将(默认情况下)更改默认网站的 web.config。您可以将 /commit:AppHost 附加到它们的末尾以使设置应用于 ApplicationHost.config.