IIS htaccess 规则转换器仅导入 1 条规则

IIS htaccess rule converter only importing 1 rule

我有一个示例 .htaccess 文件(已找到 here),其中包含要阻止的不良机器人。这是该文件中的一个小示例代码块:

#bad bots start
#programmed by tab-studio.com public  version 2017.12
#1 new rule every 500 entries
RewriteCond %{HTTP_USER_AGENT} \
12soso|\
192\.comagent|\
1noonbot|\
zuibot|\
zyborg|\
zyte\
 [NC]
RewriteRule .* - [F]
#bad bots end

基本上是在 URL 比赛中投掷 403。我检查了 this post 以了解如何通过 IIS 将这些 .htaccess 规则转换为 web.config 重写规则。 然而,当我导入规则时,我得到了一个意想不到的结果,似乎没有规则被转换,见下图。我做错了什么?

肯定是被\和马车呛到了return。如果您尝试以下操作,您会发现它应该正确导入:

#bad bots start
#programmed by tab-studio.com public  version 2017.12
#1 new rule every 500 entries
RewriteCond %{HTTP_USER_AGENT} 12soso|192\.comagent|1noonbot|zuibot|zyborg|zyte
 [NC]
RewriteRule .* - [F]
#bad bots end

话虽如此,您可能会考虑改用请求过滤和扫描 Headers:https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/requestfiltering/filteringrules/filteringrule/scanheaders/