Как настроить robot.txt, который разрешает только страницу сайта по умолчанию - PullRequest
21 голосов
/ 04 сентября 2008

Скажем, у меня есть сайт на 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 = верно

Ответы [ 5 ]

49 голосов
/ 05 сентября 2008

Итак, после некоторых исследований, вот что я нашел - решение, приемлемое для основных поставщиков поиска: google , yahoo & msn (я мог бы найти валидатор здесь):

User-Agent: *
Disallow: /*
Allow: /?okparam=
Allow: /$

Хитрость заключается в использовании $ для обозначения конца URL.

1 голос
/ 04 сентября 2008

Инструменты Google для веб-мастеров отчет о запрете всегда имеет приоритет над разрешением, поэтому в файле robots.txt простого способа сделать это нет.

Этого можно добиться, поместив тег noindex,nofollow META в HTML-страницу на каждой странице, кроме домашней.

0 голосов
/ 04 сентября 2008

Насколько я знаю, не все сканеры поддерживают тег Allow. Одним из возможных решений может быть помещение всего, кроме домашней страницы, в другую папку и запрещение этой папки.

0 голосов
/ 04 сентября 2008
Disallow: *
Allow: index.ext

Если я правильно помню, второе предложение должно переопределять первое.

0 голосов
/ 04 сентября 2008

Basic robots.txt:

Disallow: /subdir/

Я не думаю, что вы можете создать выражение, говорящее «все, кроме корня», вы должны заполнить все подкаталоги.

Ограничение строки запроса также невозможно из robots.txt. Вы должны сделать это в фоновом коде (часть обработки) или, возможно, с помощью правил перезаписи сервера.

...