#c# #asp.net #robots.txt #bots
#c# #asp.net #robots.txt #боты
Вопрос:
Теперь у нас есть множество сайтов, которые все используют базовую платформу регистрации ошибок log4net, и мы получаем ошибку с сайта отовсюду, где он добавляется. Мы заметили, что некоторые из них перехватывают ошибку из-за «бота», такого как Google, bing, yahoo и т.д. Но есть вещи, которые мы не уверены в том, как решить. У меня есть два вопроса по этому поводу :
- Является ли «Java / 1.6.0_24» ботом? Потому что пользовательский агент моего вопроса № 2 касается этого.
- Подпапка «Java / 1.6.0_24» все еще вызывает подпапку на нашем сайте, которая просто не существует! Например, если у нас есть страница с именем «Page1.aspx», вместо вызова «~/Page1.aspx», он называет ее «~/minisite/Page1.aspx». Как я могу сказать ему, что он неправ? Есть ли способ это сделать?
Спасибо вам
Ответ №1:
-
Скорее всего, это бот, но с таким же успехом это может быть какой-то браузер на основе Java, который отправляет эту строку user-agent — ей нельзя доверять на 100%, но она может дать вам приблизительное представление о том, что такое связующий объект. В зависимости от типа бота, он может также просто игнорировать ваш robots.txt так что я бы просто где-нибудь внедрил кое-какие элементы обработки.
-
Существовали ли эти папки когда-либо? Если это так, вы могли бы использовать постоянное перенаправление HTTP (код 301), чтобы сказать ему, чтобы он больше не заглядывал туда — однако это не гарантирует, что он это сделает.
Комментарии:
1. Спасибо, Марио. Но должен сказать, что вложенная папка вообще никогда не существует. Я попробую постоянное перенаправление HTTP
2. В этом случае я бы просто вернул HTTP 404 и закрутил бота, инструмент или что-то еще. Не в вашей ответственности удовлетворять все запросы, особенно те, которые никогда не были действительными. Просто добавьте какой-нибудь дополнительный фильтр, если эти ошибки скопируются в ваших файлах журналов.
3. Но это означает, что я должен создать файл? Например, если он вызывает «~/ microsite /Page1.aspx», а он не существует, я создаю его и возвращаю HTTP 404 или есть другой способ сделать это?
4. Нет, где-то в вашем коде должна произойти какая-то обработка ошибок. Если этого не происходит, веб-сервер должен обработать это (Web.config). Пример кода и подробную информацию можно найти здесь: msdn.microsoft.com/en-us/library/bb397417.aspx