Разрешить только один файл каталога в роботах.txt?


Я хочу разрешить только один файл каталога /minsc, но я хотел бы запретить остальную часть каталога.

Теперь о роботах.txt это:
User-agent: *
Crawl-delay: 10
# Directories
Disallow: /minsc/

Файл, который я хочу разрешить, это /minsc/menu-leaf.png

Я боюсь причинить вред, поэтому не знаю, должен ли я использовать:

А)

User-agent: *
Crawl-delay: 10
# Directories
Disallow: /minsc/
Allow: /minsc/menu-leaf.png

Или

B)

User-agent: *
Crawl-delay: 10
# Directories
Disallow: /minsc/*    //added "*" -------------------------------
Allow: /minsc/menu-leaf.png

?

Спасибо и извините за мой английский.

2 2

2 ответа:

Согласно роботам.сайт txt :

Исключить все файлы, кроме одного

В настоящее время это немного неудобно, так как нет поля "разрешить". То простой способ-поместить все файлы, которые будут запрещены, в отдельный файл. каталог, скажите "материал", и оставьте один файл на уровне выше этого каталог:

User-agent: *

Запретить: / ~joe / stuff /

В качестве альтернативы вы можете явно запретить все запрещенные страницы:

User-agent: *

Запретить: / ~joe / junk.html

Запретить: / ~joe / foo.html

Запретить: / ~joe / bar.html

Согласно Википедии , Если вы собираетесь использовать директиву Allow, она должна идти перед Disallow для максимальной совместимости:

Allow: /directory1/myfile.html
Disallow: /directory1/

Кроме того, вы должны поставить Crawl-delay последним, согласно Yandex:

Для поддержания совместимости с роботами, которые могут отклоняться от стандарт при обработке роботов.txt, директива Crawl-delay нуждается для добавления в группу, которая начинается с записи User-Agent справа после директив запретить и разрешить).

Итак, в конце концов, ваши роботы.txt файл должен выглядеть так:
User-agent: *
Allow: /minsc/menu-leaf.png
Disallow: /minsc/
Crawl-delay: 10

Роботы.txt-это своего рода "неформальный" стандарт, который можно интерпретировать по-разному. Единственный интересный "стандарт" - это то, как его интерпретируют крупные игроки.

Я нашел этот источник, говорящий, что globbing ('*'- style wildcards) не поддерживаются:

Обратите также внимание, что глобализация и регулярное выражение не поддерживаются ни в строках User-agent, ни в строках Disallow. '*' В поле User-agent-это специальное значение, означающее "любой робот". В частности, вы не можете иметь строки типа " User-agent: bot", "Disallow: /tmp/*" или " Disallow: *.файл GIF".

Http://www.robotstxt.org/robotstxt.html

Итак, согласно этому источнику, вы должны придерживаться своей альтернативы (A).