Файл 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.
* Делает это подстановочным знаком. Итак, ури, оканчивающийся на? будет ограничено.