Как настроить robot.txt который разрешает только страницу сайта по умолчанию

StackOverflow https://stackoverflow.com/questions/43427

Вопрос

Допустим, у меня есть сайт на http://example.com.Мне бы очень хотелось разрешить ботам видеть домашнюю страницу, но любую другую страницу нужно заблокировать, так как она бессмысленна для spider.Другими словами

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

Базовый robots.txt:

Disallow: /subdir/

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

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

Disallow: *
Allow: index.ext

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top