Chciałbym zablokować bota za pomocą IIS. Za pomocą Apache możesz dodać polecenie do pliku .htaccess, jak opisano tutaj . Jak mam to osiągnąć za pomocą IIS 7.5?
Aktualizacja
Oprócz odpowiedzi poniżej, istnieje wiele metod, które odkryłem od czasu opublikowania tego pytania:
- Opcja skanowania adresu URL wymieniona w zaakceptowanej odpowiedzi.
- Zdefiniuj regułę filtrowania żądań (przykład poniżej)
- Zdefiniuj regułę przepisywania adresów URL (przykład poniżej)
Żądaj reguły filtrowania
<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>
Reguła przepisywania adresów 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>
W ostatnim projekcie skończyłem z opcją 2, ponieważ jest ona skoncentrowana na bezpieczeństwie i oparta na zintegrowanym skanowaniu adresów URL wbudowanym w IIS 7.
Wiem, że to stare pytanie, ale w IIS 7.5 możesz odmówić przez użytkownika, jeśli używasz filtrowania żądań.
W usługach IIS przejdź do witryny, w której chcesz zastosować filtr, a następnie w prawym okienku kliknij ikonę Żądaj filtrowania . (może być konieczne włączenie tej funkcji za pośrednictwem menedżera serwera).
Kliknij kartę Reguły , a następnie wzdłuż listy po prawej stronie wybierz „Dodaj regułę filtrowania”
Nadaj mu nazwę, a następnie w sekcji Skanuj nagłówki wpisz „User-Agent”.
Możesz dodać dowolny określony typ pliku (-ów) do zablokowania w Dotyczy Dotyczy lub możesz pozostawić to pole puste, aby dotyczyło wszystkich typów plików.
W Odmów ciągów wprowadź wszystkie ciągi klienta użytkownika, które chcesz zablokować. W przypadku tego pytania wstawiłbyś tutaj „Yandex”.
Potwierdziłem te zmiany w chrome przy użyciu rozszerzenia User Agent Switcher .
źródło
W przypadku przeszukiwaczy, które nie przestrzegają pliku Robots.txt, można użyć przepisywania adresów URL na serwerze w celu blokowania w oparciu o ich agenta użytkownika, patrz: http://chrisfulstow.com/using-the-iis-7url-rewrite-module-to- roboty blokowe /
Aby uzyskać więcej informacji: http://www.iis.net/download/URLRewrite
źródło