Robots.txt и Google Календарь

Я ищу лучшее решение, чтобы убедиться, что я делаю это правильно:

У меня есть календарь на моем веб-сайте, в котором пользователи могут взять фид календаря iCal и импортировать его во внешние календари по своему усмотрению (Outlook, iCal, Календарь Google и т. Д.).

Чтобы предотвратить сканирование / поиск файлов * .ics на моем веб-сайте плохими людьми, я установил Robots.txt, чтобы запретить использование папок, в которых хранятся каналы.

Итак, по сути, канал iCal может выглядеть так: webcal: //www.mysite.com/feeds/cal/a9d90309dafda390d09/feed.ics

Я понимаю, что приведенный выше URL-адрес все еще является общедоступным. Однако у меня есть функция, в которой пользователь может при желании изменить адрес своей ленты.

Мой вопрос: у всех внешних календарей нет проблем с импортом / подпиской на канал календаря, за исключением Календаря Google. Выдает сообщение: Google не удалось просканировать URL из-за ограничения robots.txt. Ответ Google на это.

Следовательно, после поисков я обнаружил, что работает следующее:

1) Настройте файл PHP (который я использую), который, по сути, вызывает загрузку файла. В основном это выглядит так:

<?php
$url = "/home/path/to/local/feed/".$_GET['url'];
 $file = fopen ($url, "r");
 if (!$file) {
    echo "<p>Unable to open remote file.\n";
    exit;
  }
 while (!feof ($file)) {
  $line = fgets ($file, 1024);
 print $line;
}
fclose($file);
?>

Я пробовал использовать этот скрипт, и оказалось, что он работает с Google Calendar без проблем. (Хотя я не уверен, что он обновляется / обновляется. Я все еще жду, чтобы увидеть, работает ли это).

У меня такой вопрос: есть ли лучший способ решить эту проблему? Я хотел бы сохранить текущий файл Robots.txt, чтобы запретить сканирование моих каталогов для файлов * .ics и сохранить эти файлы скрытыми.


person Dodinas    schedule 14.01.2011    source источник
comment
robots.txt - это чисто добровольный механизм, который будут соблюдать большинство основных поисковых роботов, но злоумышленник полностью проигнорирует (и действительно, будет использовать в качестве источника для сканирования местоположений, если вы фактически заблокируете определенные URL-адреса на своем сайте)   -  person Marc B    schedule 14.01.2011


Ответы (2)


Мне кажется, у вас две проблемы:

  1. Предотвратить доступ к сайту ботов с плохим поведением.
  2. После установки robots.txt разрешите роботу Google доступ к вашему сайту.

Первую проблему не решает robots.txt. Как отмечает Марк Б. в комментарии, robots.txt - это чисто добровольный механизм. Чтобы раз и навсегда заблокировать плохих ботов, я предлагаю вам использовать какую-то программу / брандмауэр для анализа поведения, чтобы обнаруживать плохих ботов и запрещать доступ с этих IP-адресов.

Что касается второй проблемы, robots.txt позволяет занести конкретного бота в белый список. В качестве примера посмотрите http://facebook.com/robots.txt. Отметил, что Google идентифицирует своих ботов разными именами (для Adsence, поиска, поиска изображений, мобильного поиска), я не знаю, использует ли бот календаря Google общее имя бота Google или нет.

person timdream    schedule 14.01.2011

У меня недавно была эта проблема, и этот файл robots.txt у меня работает.

User-agent: Googlebot
Allow: /*.ics$
Disallow: /

User-agent: *
Disallow: /

Это позволяет получить доступ к любым файлам .ics, если они знают адрес, и не позволяет ботам выполнять поиск на сайте (это частный сервер). Вы захотите изменить тег запрета для своего сервера.

Я не думаю, что тег allow является частью спецификации, но некоторые боты, похоже, его поддерживают. Вот справочная страница Инструментов Google для веб-мастеров на robots.txt
http://support.google.com/webmasters/bin/answer.py?hl=ru&answer=156449

person Nicholas    schedule 01.04.2013
comment
Этот ответ сработал для меня. У Google есть страница, объясняющая, как их обработка подстановочных знаков работает в robots.txt, на сайте разработчиков. .google.com / webmasters / control-crawl-index / docs /. - person Jason; 05.11.2014