Как настроить robot.txt, который разрешает только страницу сайта по умолчанию
Скажем, у меня есть сайт на http://example.com. Мне бы очень хотелось, чтобы боты увидели домашнюю страницу, но любая другая страница должна быть заблокирована, поскольку она бессмысленна для паука. Другими словами
http://example.com и http://example.com/ должно быть разрешено, но
http://example.com/anything и http://example.com/someendpoint.aspx должен быть заблокирован.
Далее было бы здорово, если бы я мог разрешить некоторые строки запросов перейти на домашнюю страницу:
http://example.com?okparam=true
но не
http://example.com?anythingbutokparam=true
Ответы
Ответ 1
Итак, после некоторых исследований, вот что я нашел - решение, приемлемое для основных поставщиков поиска: google, yahoo и msn (я мог бы найти здесь валидатор):
User-Agent: *
Disallow: /*
Allow: /?okparam=
Allow: /$
Трюк использует значение $, чтобы отметить конец URL.
Ответ 2
отчет Google Webmaster Tools, который запрещает всегда иметь приоритет над allow, поэтому нет простого способа сделать это в файле robots.txt
.
Вы можете выполнить это, указав тег noindex,nofollow
META
в HTML на каждой странице, кроме домашней страницы.
Ответ 3
Базовый файл robots.txt:
Disallow: /subdir/
Я не думаю, что вы можете создать выражение, говорящее "все, кроме корня", вы должны заполнить все подкаталоги.
Ограничение строки запроса также невозможно из файла robots.txt. Вы должны сделать это в фоновом коде (части обработки) или, возможно, с правилами перезаписи сервера.
Ответ 4
Disallow: *
Allow: index.ext
Если я правильно помню, второе предложение должно переопределить первое.
Ответ 5
Насколько я знаю, не все сканеры поддерживают Allow tag. Одним из возможных решений может быть размещение всего, кроме домашней страницы, в другую папку и запрещение этой папки.