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