Назад | Перейти на главную страницу

Значение запрета: / *? в robots.txt

Файл robots.txt Yahoo содержит:

User-agent: *
Disallow: /p/
Disallow: /r/
Disallow: /*?

Что означает последняя строчка? ("Запретить: / *?")

Если бы это было регулярное выражение Perl:

*?     Match 0 or more times, not greedily

http://perldoc.perl.org/perlre.html

тем не мение robots.txt следует действительно базовой грамматике, как таковой,

Чтобы соответствовать последовательности символов, используйте звездочку (*). Например, чтобы заблокировать доступ ко всем подкаталогам, которые начинаются с private:

User-agent: Googlebot
Disallow: /private*/

Чтобы заблокировать доступ ко всем URL-адресам, содержащим вопросительный знак (?) (Точнее, любой URL-адрес, который начинается с вашего доменного имени, за которым следует любая строка, за которой следует вопросительный знак, за которым следует любая строка):

User-agent: Googlebot
Disallow: /*?

Чтобы указать совпадение конца URL-адреса, используйте $. Например, чтобы заблокировать любые URL-адреса, заканчивающиеся на .xls:

User-agent: Googlebot 
Disallow: /*.xls$

Вы можете использовать это сопоставление с образцом в сочетании с директивой Allow. Например, если? указывает идентификатор сеанса, вы можете исключить все URL-адреса, которые их содержат, чтобы робот Googlebot не сканировал повторяющиеся страницы. Но URL-адреса, заканчивающиеся на? может быть той версией страницы, которую вы действительно хотите включить. В этой ситуации вы можете настроить свой файл robots.txt следующим образом:

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

Запрещение: / *? Директива заблокирует любой URL-адрес, содержащий знак? (более конкретно, он заблокирует любой URL-адрес, который начинается с вашего доменного имени, за которым следует любая строка, за которой следует вопросительный знак, за которым следует любая строка).

Директива Allow: / *? $ Разрешит любой URL, заканчивающийся на? (более конкретно, он разрешит любой URL-адрес, который начинается с вашего доменного имени, за которым следует строка, за которой следует?, без символов после?).

Так что практически любой запрос или поиск на Yahoo! запрещено роботом.

Поддержка выражений по ошибке не указана в RFC, http://www.robotstxt.org/norobots-rfc.txt

Лучшее описание предоставлено Google, http://www.google.com/support/webmasters/bin/answer.py?hl=ru&answer=156449.

* Делает это подстановочным знаком. Итак, ури, оканчивающийся на? будет ограничено.