Указание переменных в robots.txt

Моя структура URL настроена на две параллели (оба ведут в одно и то же место):

  • www.example.com/subname
  • www.example.com/123

Проблема в том, что пауки ползают по таким вещам, как:

  • www.example.com/subname/default_media_function
  • www.example.com/subname/map_function

Обратите внимание, что имя «subname» представляет тысячи разных страниц на моем сайте, которые имеют одну и ту же функцию.

И они выдают ошибки, потому что эти ссылки предназначены исключительно для целей JSON или AJAX, а не для реальных ссылок. Я хотел бы запретить им доступ к этим страницам, но как мне это сделать, если URL-адрес содержит переменную?

Будет ли это работать в robots.txt?

Disallow: /map_function

person Trip    schedule 13.07.2010    source источник
comment
Этот точно работает Disallow: /map_function/   -  person Boris Delormas    schedule 13.07.2010
comment
Почему вы написали это в качестве ответа? Я отдам тебе должное, если это правда :D   -  person Trip    schedule 13.07.2010


Ответы (1)


Вам придется сделать

Disallow: /subname/map_function

Роботы будут искать файл robots.txt на корневом уровне. Также там они оценивают URL-адреса слева направо без подстановочных знаков.

Таким образом, вам нужно либо создать одно местоположение для всех map_function и исключить его, либо исключить все местоположения.

person Scott Bonner    schedule 13.07.2010
comment
Часто ли люди динамически создают сценарии для роботов? Потому что это var 'subname' представляет тысячи разных страниц, каждая из которых имеет одну и ту же функцию. Я просто беспокоюсь о том, чтобы сделать огромный robot.txt - person Trip; 13.07.2010
comment
Я не думаю, что вам нужно будет слишком беспокоиться о размере. Лучше всего найти способ поместить все элементы в один каталог, а затем исключить каталог... Запретить: /subname/restrict/ или что-то в этом роде, это избавит вас от проблем с robot.txt. Однако вы также можете сделать это динамически, способ создания не имеет значения для бота. - person Scott Bonner; 13.07.2010
comment
так что это проблема mod_rewrite, я так понимаю. Возможно, вы захотите использовать # для указания ваших параметров. jquery включает его. Я думаю, что боты не будут обращать внимание на анкоры - person Scott Bonner; 13.07.2010
comment
Могу ли я сделать то, что @Kaaviar сказал выше? Просто запретить: /map_function/ или */map_function/ ? - person Trip; 13.07.2010
comment
* является подстановочным знаком, это может работать на Google или более крупных движках, но не на меньших, поскольку это не является частью стандарта. Поисковые системы читают файл robot.txt слева направо. поэтому /map_function/ совпадает с domainname.com/map_function, так что это не остановит его. Вот почему, если вы можете найти способ консолидировать map_function, это его собственный каталог или путь, который одинаков для всех подимен, тогда вы можете предотвратить его индексирование, просто ограничив этот один путь. - person Scott Bonner; 13.07.2010