robots.txt, чтобы запретить все страницы, кроме одной? Они переопределяют и каскадируют?
спросил
Изменено 5 лет, 7 месяцев назад
Просмотрено 49 тысяч раз
Я хочу, чтобы сканировалась одна страница моего сайта и никакие другие.
Кроме того, если это отличается от ответа выше, я также хотел бы знать синтаксис для запрета всего, кроме корня (индекса) веб-сайта.
# robots.txt для http://example.com/ Пользовательский агент: * Запретить: /style-guide Запретить: /всплеск Запретить: /etc Запретить: /etc Запретить: /etc Запретить: /etc Запретить: /etc
Или можно так?
# robots.txt для http://example.com/ Пользовательский агент: * Запретить: / Разрешить: /в стадии строительства
Также я должен упомянуть, что это установка WordPress, поэтому, например, «в разработке» установлено на первой странице.
Я думаю, что мне нужно, чтобы http://example.com
ползали, но не другие страницы.
# robots.txt для http://example.com/ Пользовательский агент: * Запретить: /*
Означает ли это, что запрещать что-либо после корня?
- robots.txt
Самый простой способ разрешить доступ только к одной странице:
User-agent: * Разрешить: /в стадии строительства Запретить: /
В исходной спецификации robots.txt сказано, что поисковые роботы должны читать robots.txt сверху вниз и использовать первое правило соответствия. Если поставить Сначала запретите
, тогда многие боты увидят, что они не могут ничего сканировать. Поставив сначала Разрешить
, те, кто применит правила сверху вниз, увидят, что они могут получить доступ к этой странице.
Правила выражения просты: выражение
Disallow: /
говорит «запретить все, что начинается с косой черты «.
Ваш Disallow: /*
означает одно и то же для Googlebot и Bingbot, но боты, которые не поддерживают подстановочные знаки, могут видеть /*
и думаю, что вы имели в виду буквальное *
. Таким образом, они могли предположить, что сканирование /*foo/bar.html
— это нормально.
Если вы просто хотите просканировать http://example.com
, но ничего больше, вы можете попробовать:
Разрешить: /$ Запретить: /
$
означает «конец строки», как и в регулярных выражениях. Опять же, это будет работать для Google и Bing, но не будет работать для других сканеров, если они не поддерживают подстановочные знаки.
Если вы войдете в Инструменты Google для веб-мастеров, на левой панели перейдите к сканированию, затем перейдите к Просмотреть как Google. Здесь вы можете проверить, как Google будет сканировать каждую страницу.
В случае блокировки всего, кроме главной страницы:
User-agent: * Разрешить: /$ Запретить: /
подойдет.
1
вы можете использовать это ниже, оба будут работать
User-agent: * Разрешить: /$ Запретить: /
или
User-agent: * Разрешить: /index.php Запретить: /
Разрешить должно быть перед Запретить, потому что файл читается сверху вниз
Запретить: / говорит «запретить все, что начинается с косой черты». Так что значит все на сайте.
Символ $ означает «конец строки», как и в регулярных выражениях. поэтому результатом Allow : /$ является ваша домашняя страница /index
http://en.wikipedia.org/wiki/Robots.txt#Allow_directive
Порядок важен только для роботов, которые следуют стандарту; в случае ботов Google или Bing порядок не важен.
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Требуется, но не отображается
robots.

спросил
Изменено 2 года, 8 месяцев назад
Просмотрено 19 тысяч раз
Кажется, я не могу заставить это работать, но это кажется очень простым.
Я хочу, чтобы корневой домен сканировался
http://www.example.com
Но сканировать больше нечего, и все подкаталоги динамические
http://www.example.com/*
Пробовал
User-agent: * Позволять: / Запретить: /*/
, но инструмент тестирования Google для веб-мастеров говорит, что разрешены все подкаталоги.
У кого-нибудь есть решение? Спасибо 🙂
- robots.txt
3
Согласно определениям синтаксического анализа формы Бэкуса-Наура (BNF) в документации Google robots. txt, порядок директив
Allow
и Disallow
не имеет значения. Так что изменение порядка действительно не поможет вам.
Вместо этого используйте оператор $
, чтобы указать на закрытие вашего пути. $
означает «конец строки» (т. е. с этого момента ничего не совпадает)
Проверить этот robots.txt. Я уверен, что это должно сработать для вас (я также проверил в Google Search Console):
user-agent: * Разрешить: /$ Запретить: /
Это позволит сканировать http://www.example.com
и http://www.example.com/
, но все остальное будет заблокировано.
Allow
удовлетворяет вашему конкретному варианту использования, но если у вас есть index.html
или default.php
, эти URL не будут сканироваться. примечание: Я действительно знаком только с поведением Googlebot и bingbot.