使用web.config禁止用户代理

Eam*_*nne 8 asp.net iis

是否可以直接从web.config禁止某些用户代理?某些机器人似乎不遵循robots.txt,并且为了避免无意义的服务器负载(以及日志文件垃圾邮件),我想阻止某些类别的请求(特别是基于用户代理或非常可能是IP地址)继续进行.

如果您知道是否可以防止此类请求完全记录到IIS的日志文件中,则可以获得奖励积分.(即if-request-match,转发到/ dev/null,如果你明白我的意思).

win2003的解决方案更可取,但这是一个反复出现的问题 - 如果IIS7有一个干净的解决方案而不是IIS6,我很乐意知道它.

编辑: 抱歉'回合之前的不完整问题,我有标签+意外输入.

Alb*_*ker 12

使用IIS7中的URLRewrite模块可以非常轻松地完成此操作.但我真的不知道这是否会阻止这些请求被记录.

 <rewrite> 
  <rules> 
    <rule name="Ban user-agent RogueBot" stopProcessing="true"> 
      <match url=".*" /> 
      <conditions> 
        <add input="{HTTP_USER_AGENT}" pattern="RogueBotName" /> 
        <add input="{MyPrivatePages:{REQUEST_URI}}" pattern="(.+)" /> 
      </conditions> 
      <action type="AbortRequest" /> 
    </rule> 
  </rules> 
  <rewriteMaps> 
    <rewriteMap name="MyPrivatePages"> 
      <add key="/PrivatePage1.aspx" value="block" /> 
      <add key="/PrivatePage2.aspx" value="block" />
      <add key="/PrivatePage3.aspx" value="block" /> 
    </rewriteMap> 
  </rewriteMaps> 
</rewrite>
Run Code Online (Sandbox Code Playgroud)