Robots.txt и Google Calendar - PullRequest
       4

Robots.txt и Google Calendar

3 голосов
/ 14 января 2011

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

На моем веб-сайте есть календарь, в котором пользователи могут взять фид календаря 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, без проблем. (Хотя я не уверен, что он обновляется / обновляется. Я все еще жду, чтобы увидеть, работает ли это).

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

Ответы [ 2 ]

5 голосов
/ 01 апреля 2013

У меня недавно была эта проблема, и этот 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=en&answer=156449

1 голос
/ 14 января 2011

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

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

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

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

...