Может ли robots.txt находиться в подкаталоге сервера?

16

У меня есть подкаталог, который я хотел бы скрыть от поисковых роботов поисковых систем.

Один из способов сделать это - использовать robots.txtв корневом каталоге сервера (стандартный способ). Однако любой, кто знает URL-адрес веб-сайта и имеет некоторые базовые знания в Интернете, может получить доступ к содержимому robots.txt и определить запрещенные каталоги.

Я думал, как избежать этого, но я не уверен, сработает ли.

Позвольте Xбыть именем подкаталога, который я хочу исключить. Один из способов , чтобы остановить веб - Ползуны индексации Xкаталога и в то же самое время , чтобы сделать более трудным для кого - то , чтобы определить Xкаталог из корневого robots.txt, чтобы добавить robots.txtв Xкаталог вместо корневого каталога.

Если я последую этому решению, у меня возникнут следующие вопросы:

  1. Найдут ли веб-сканеры robots.txtв подкаталоге? (учитывая, что robots.txtуже существует и в корневом каталоге)
  2. Если robots.txtнаходится в Xподкаталоге, то я должен использовать относительные или абсолютные пути ?:

    User-agent: *
    Disallow: /X/
    

    или

    User-agent: *
    Disallow: /
    
Рафаэль
источник
2
Я не уверен, почему вы не хотите, чтобы люди читали ваши запрещенные каталоги, но если есть конфиденциальные данные, они должны быть не только заблокированы роботами, но также ограничены логином или какой-либо другой защитой.
Эндрю Лотт
Это не так, я хотел бы, чтобы один конкретный пользователь имел к нему доступ (ничего не чувствительного с точки зрения данных, просто для конфиденциальности), и я бы хотел не блокировать каталог.
Рафаэль
5
Если у вас есть проблемы с конфиденциальностью, то вам следует защитить данные другим способом. Это не то, для чего robots.txt.
Эндрю Лотт

Ответы:

18

Нет, веб-сканеры не будут читать или выполнять файл robots.txt в подкаталоге. Как описано на квази-официальном сайте robotstxt.org :

Где его поставить

Краткий ответ: в каталоге верхнего уровня вашего веб-сервера.

или на страницах справки Google ( выделено мое):

robots.txtФайл представляет собой файл в корневом каталоге вашего сайта , который указывает на те части сайта , которые вы не хотите получить доступ с помощью поисковых роботов поисковых систем.

В любом случае, использование robots.txt для скрытия конфиденциальных страниц от результатов поиска в любом случае является плохой идеей, поскольку поисковые системы могут индексировать запрещенные страницы в robots.txt, если другие страницы ссылаются на них. Или, как описано на странице справки Google, ссылка на которую приведена выше:

Вы не должны использовать robots.txt как средство скрытия своих веб-страниц от результатов поиска Google. Это связано с тем, что другие страницы могут указывать на вашу страницу, и ваша страница может индексироваться таким образом, избегая файла robots.txt.

Так что вы должны сделать вместо этого?

  • Вы можете разрешить поисковым системам сканировать страницы (если они их найдут), но включить метатег роботов с контентом noindex,nofollow. Это скажет поисковым системам не индексировать эти страницы, даже если они найдут ссылки на них, и не переходить по каким-либо дальнейшим ссылкам с этих страниц. (Конечно, это будет работать только для веб-страниц HTML.)

  • Для ресурсов, отличных от HTML, вы можете настроить свой веб-сервер (например, с помощью .htaccessфайла) на отправку HTTP-заголовка X-Robots-Tag с тем же содержимым.

  • Вы можете настроить аутентификацию по паролю для защиты конфиденциальных страниц. Помимо защиты страниц от посторонних посетителей, это также эффективно защитит веб-сканеры.

Илмари Каронен
источник
Фантастическая, это статическая HTML-страница, которая, добавив метатег, поможет. Спасибо.
Рафаэль
5

Вы robots.txtдолжны быть в корневом каталоге и не должны иметь другого имени. Согласно стандартной спецификации :

Этот файл должен быть доступен через HTTP на локальном URL "/robots.txt".

Эндрю Лотт
источник
Тем не менее, сканеры не будут искать никакой другой каталог для robots.txt?
Рафаэль
1
Не то, чтобы я когда-либо видел. /robots.txtэто стандарт, так как же поисковые системы будут знать, где искать иначе?
Эндрю Лотт
0

Вы МОЖЕТЕ фактически использовать robots.txt в подкаталоге. В настоящее время мы так относимся к нашим языковым поддоменам. Мы используем переадресацию 301 из /robots.txt в /lang/robots.txt (для каждого поддомена), и он правильно подобран.

Он также выбирает структуру папок как правильный корень при использовании простой косой черты. например. запретить: /

рассматривается как запрещающий все, а не только текущий подкаталог, в котором находится файл {redirected} robots.txt.

Но опять же, мы перенаправляем с 301 и имеем это на месте, поэтому без 301, я сомневаюсь, что это когда-либо будет найдено ...

штифтик
источник