Ich möchte einen Bot mit IIS blockieren. Mit Apache können Sie Ihrer .htaccess-Datei einen Befehl hinzufügen, wie hier beschrieben . Wie würde ich dies mit IIS 7.5 erreichen?
Aktualisieren
Zusätzlich zur folgenden Antwort gibt es insgesamt Ansätze, die ich seit dem Posten dieser Frage entdeckt habe:
- URL-Scan-Option in der akzeptierten Antwort aufgeführt.
- Definieren Sie eine Anforderungsfilterregel (Beispiel unten)
- Definieren Sie eine URL-Umschreibungsregel (Beispiel unten)
Filterregel anfordern
<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-Umschreibungsregel
<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>
Bei meinem letzten Projekt habe ich mich für Option 2 entschieden, da diese sicherheitsorientiert ist und auf dem in IIS 7 integrierten integrierten URL-Scan basiert.