Подтвердить что ты не робот

Robots.txt разрешить только root, запретить все остальное?

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

Я хочу, чтобы корень домена был сканирован

http://www.example.com

Но больше ничего не нужно сканировать, а все подкаталоги динамические

http://www.example.com/*

Я пробовал

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

но инструмент проверки веб-мастеров Google говорит, что разрешены все подкаталоги.

У кого-нибудь есть решение для этого? Спасибо:)

4b9b3361

Ответ 1

В соответствии с определениями синтаксического анализа формы Бэкуса-Наура (BNF) в документации Google robots.txt порядок директив Allow и Disallow не имеет значения. Таким образом, изменение порядка действительно не поможет вам.

Вместо этого вы должны использовать оператор $ чтобы указать закрытие вашего пути.

Проверьте это robots.txt. Я уверен, что это должно работать для вас (я также подтвердил в Google Search Console):

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

Это позволит сканировать http://www.example.com и http://www.example.com/, но все остальное заблокировано.

примечание: директива Allow удовлетворяет вашему конкретному случаю использования, но если у вас есть index.html или default.php, эти URL не будут сканироваться.

примечание: я действительно хорошо знаком с поведением Googlebot и bingbot. Если есть какие-то другие движки, на которые вы нацеливаетесь, они могут иметь или не иметь конкретных правил относительно того, как перечислены директивы. Поэтому, если вы хотите быть "лишним", вы всегда можете поменять местами блоки директив Allow и Disallow, я просто установил их таким образом, чтобы разоблачить некоторые комментарии.

Ответ 2

Когда вы посмотрите на спецификации Google robots.txt, вы увидите, что:

Google, Bing, Yahoo и Ask поддерживают ограниченную форму "подстановочных знаков" для значений пути. Это:

  1. * обозначает 0 или более экземпляров любого допустимого символа
  2. $ обозначает конец URL

см. https://developers.google.com/webmasters/control-crawl-index/docs/robots_txt?hl=en#example-path-matches

Тогда, как сказал эйву, решение

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

Ответ 3

User-agent: *
Allow:  index.html (or /index.php)
Disallow: /

должен делать магию.