Tôi muốn chặn một bot với IIS. Với Apache, bạn có thể thêm một lệnh vào tệp .htaccess của mình, như được nêu ở đây . Làm thế nào tôi có thể thực hiện điều này với IIS 7.5?
Cập nhật
Ngoài câu trả lời dưới đây, có tổng số cách tiếp cận tôi đã khám phá kể từ khi đăng câu hỏi này:
- Tùy chọn Quét URL được liệt kê trong câu trả lời được chấp nhận.
- Xác định quy tắc Lọc yêu cầu (ví dụ bên dưới)
- Xác định quy tắc Viết lại URL (ví dụ bên dưới)
Quy tắc lọc yêu cầu
<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>
Quy tắc viết lại 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>
Đối với dự án cuối cùng của tôi, tôi đã kết thúc với tùy chọn 2 vì nó tập trung vào bảo mật và dựa trên Quét URL tích hợp được tích hợp trong IIS 7.