Je voudrais bloquer un bot avec IIS. Avec Apache, vous pouvez ajouter une commande à votre fichier .htaccess, comme indiqué ici . Comment pourrais-je accomplir cela avec IIS 7.5?
Mise à jour
En plus de répondre ci-dessous, il y a un total d'approches que j'ai découvert depuis la publication de cette question:
- Option d'analyse d'URL répertoriée dans la réponse acceptée.
- Définissez une règle de filtrage des demandes (exemple ci-dessous)
- Définissez une règle de réécriture d'URL (exemple ci-dessous)
Règle de filtrage des demandes
<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>
Règle de réécriture d'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>
Pour mon dernier projet, j'ai fini par choisir l'option 2 car elle est axée sur la sécurité et basée sur l'analyse d'URL intégrée intégrée à IIS 7.