Robots.txt, как разрешить доступ только к корню домена, а не глубже?

Я хочу разрешить сканерам получать доступ к корневому каталогу моего домена (т.е. файл index.html), но ничего глубже (т.е. нет подкаталогов). Я не хочу, чтобы список и запретить каждый подкаталог отдельно в файле robots.txt. В настоящее время у меня есть следующее, но я думаю, что это блокирует все, включая материал в корне домена.

User-agent: *
Allow: /$
Disallow: /

Как я могу написать свой файл robots.txt для выполнения того, что я пытаюсь сделать?

Спасибо заранее!

Ответы

Ответ 1

Там ничего не будет работать для всех сканеров. Есть два варианта, которые могут быть полезны для вас.

Роботы, которые допускают подстановочные знаки, должны поддерживать что-то вроде:

Disallow: /*/

Основные поисковые роботы понимают подстановочные знаки, но, к сожалению, большинство из них не имеют.

Если у вас относительно мало файлов в корневом каталоге, и вы не часто добавляете новые файлы, вы можете использовать Allow, чтобы разрешить доступ к этим файлам, а затем использовать Disallow: /, чтобы ограничить все остальное. То есть:

User-agent: *
Allow: /index.html
Allow: /coolstuff.jpg
Allow: /morecoolstuff.html
Disallow: /

Порядок здесь важен. Предполагается, что сканеры пройдут в первом матче. Поэтому, если ваше первое правило было Disallow: /, искатель с корректным поведением не попадал бы в следующие строки Allow.

Если искатель не поддерживает Allow, он увидит Disallow: / и не сканирует что-либо на вашем сайте. Предоставляя, конечно, что он игнорирует вещи в robots.txt, которые он не понимает.

Все основные поисковые роботы поддерживают Allow, и многие из них тоже делают. Это легко реализовать.

Ответ 2

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

Таким образом, будет работать следующий подход (kludge!).

User-agent: *
Disallow: /a
Disallow: /b
Disallow: /c
...
Disallow: /z
Disallow: /A
Disallow: /B
Disallow: /C
...
Disallow: /Z
Disallow: /0
Disallow: /1
Disallow: /2
...
Disallow: /9