2011-01-14 62 views
3

我正在尋找最好的解決方案我如何能確保我這樣做正確:的robots.txt和谷歌日曆

我有我的網站上一個日曆,用戶在其中可以採取的iCal日曆和飼料將其導入到其偏好的外部日曆中(Outlook,iCal,Google日曆等)。

爲了阻止壞人從* .ics文件抓取/搜索我的網站,我已經設置Robots.txt以禁止存儲訂閱源的文件夾。

所以,從本質上講,一個iCal供稿可能看起來像:WebCal中://www.mysite.com/feeds/cal/a9d90309dafda390d09/feed.ics

我明白上面是仍然公開網址。但是,我有一個功能,用戶可以根據需要更改其Feed的地址。

我的問題是:除Google日曆外,所有外部日曆在導入/訂閱日曆Feed時都沒有問題。它會拋出以下消息:由於robots.txt限制,Google無法抓取該網址。 Google's Answer to This

因此,圍繞搜索後,我發現了以下工作:

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); 
?> 

我試過使用這個腳本,它似乎與谷歌日曆一起工作,沒有問題。 (雖然我不確定它是否會更新/刷新,但我仍然在等待看看它是否有效)。

我的問題是這樣的:有沒有更好的方法來處理這樣的問題?我想保留當前的Robots.txt,以便不允許抓取* .ics文件的目錄並隱藏文件。

+2

的robots.txt谷歌的網站管理員工具幫助頁面,大多數主要的搜索引擎爬蟲會履行一個完全自願的機制,但惡意用戶將完全忽略(實際上,作爲源使用如果您實際上鎖定了您網站上的特定網址,請抓取地點) – 2011-01-14 03:41:38

回答

1

可你有兩個問題:

  1. 阻止訪問該網站不良行爲的機器人 。
  2. 經過 安裝robots.txt,允許 Googlebot訪問您的網站。

第一個問題無法通過robots.txt解決。正如Marc B在評論中指出的那樣,robots.txt是一個純粹的自願機制。爲了一勞永逸地阻止badbots,我會建議你使用某種行爲分析程序/防火牆來檢測不良機器人並拒絕來自這些IP的訪問。

對於第二個問題,robots.txt確實允許您將特定的bot加入白名單。以http://facebook.com/robots.txt爲例。注意到Google使用不同的名稱(用於Adsence,搜索,圖片搜索和移動搜索)來標識他們的機器人,但如果Google日曆機器人使用通用的Google機器人名稱,則不是。

+0

另請查看http://wikipedia.org/robots.txt ...您會感到驚訝! – timdream 2011-01-14 06:11:08

4

我最近有這個問題,這robots.txt適合我。

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

User-agent: * 
Disallow:/

這允許訪問任何。ics文件,如果他們知道該地址並阻止漫遊器搜索該站點(這是一個私人服務器)。您將需要更改服務器的disallow標籤。

我不認爲允許標記是規範的一部分,但一些機器人似乎支持它。這裏是robots.txt的
http://support.google.com/webmasters/bin/answer.py?hl=en&answer=156449

+0

這個答案適合我。 Google有一個頁面,解釋他們的通配符處理如何在https://developers.google.com/webmasters/control-crawl-index/docs/robots_txt上的robots.txt中運作 – Jason 2014-11-05 18:51:49