我想用IIS阻止一个机器人。使用Apache,您可以将命令添加到.htaccess文件中,如此处所述。我将如何使用IIS 7.5做到这一点?
更新资料
除了以下答案外,自发布此问题以来,我还发现了其他方法:
- 接受的答案中列出了URL扫描选项。
- 定义请求过滤规则(以下示例)
- 定义URL重写规则(下面的示例)
请求过滤规则
<system.webServer>
<security>
<requestFiltering>
<filteringRules>
<filteringRule name="BlockSearchEngines" scanUrl="false" scanQueryString="false">
<scanHeaders>
<clear />
<add requestHeader="User-Agent" />
</scanHeaders>
<appliesTo>
<clear />
</appliesTo>
<denyStrings>
<clear />
<add string="YandexBot" />
</denyStrings>
</filteringRule>
</filteringRules>
</requestFiltering>
</security>
[...]
</system.webServer>
URL重写规则
<rule name="RequestBlockingRule1" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTP_USER_AGENT}" pattern="YandexBot" />
</conditions>
<action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." statusDescription="Get Lost." />
</rule>
在我的上一个项目中,我选择了选项2,因为它专注于安全性并且基于IIS 7中内置的集成URL扫描。