<p>J’aimerais bloquer un robot avec IIS. Avec Apache, vous pouvez ajouter une commande dans votre fichier .htaccess, comme <a href="http://brainshavings.com/2010/06/retaliation-against-the-yandex-bot.html" rel="noopener nofollow ugc">décrit ici</a>. Comment puis-je accomplir cela avec IIS 7.5 ?</p>
<p><strong>Mise à jour</strong></p>
<p>En plus de la réponse ci-dessous, il y a un total d’approches que j’ai découvertes depuis la publication de cette question :</p>
<ul>
<li>
<p>L’option URL Scan listée dans la réponse acceptée.</p>
</li>
<li>
<p>Définir une règle de filtrage des requêtes (exemple ci-dessous)</p>
</li>
<li>
<p>Définir une règle de réécriture d’URL (exemple ci-dessous)</p>
</li>
</ul>
<p><em>Règle de filtrage des requêtes</em></p>
<pre><code class="lang-auto"> <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>
</code></pre>
<p><em>Règle de réécriture d’URL</em></p>
<pre><code class="lang-auto"><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>
</code></pre>
<p>Pour mon dernier projet, j’ai opté pour l’option 2 car elle est orientée sécurité et basée sur le URL Scan intégré à IIS 7.</p>
<hr>
<p><em>Source : <a href="http://brainshavings.com/2010/06/retaliation-against-the-yandex-bot.html" rel="noopener nofollow ugc">Server Fault</a>.)</em></p>