2010-08-19 59 views
2

任何人都可以告訴我這個robots.txt有什麼問題嗎?谷歌爬蟲發現robots.txt,但無法下載

http://bizup.cloudapp.net/robots.txt

以下是谷歌網站管理員工具中的錯誤,我得到:

Sitemap errors and warnings 
Line Status Details 
Errors - 
Network unreachable: robots.txt unreachable 
We were unable to crawl your Sitemap because we found a robots.txt file at the root of 
your site but were unable to download it. Please ensure that it is accessible or remove 
it completely. 

其實上面的鏈接是去一個動作的機器人路線的映射。該操作從存儲中獲取文件並以文本/純文本形式返回內容。谷歌表示他們無法下載該文件。是因爲那個嗎?

回答

4

它看起來像是讀的robots.txt OK,但隨後你的robots.txt聲稱http://bizup.cloudapp.net/robots.txt也是你的XML網站地圖的URL,當它的真的http://bizup.cloudapp.net/sitemap.xml。該錯誤似乎來自Google試圖將robots.txt解析爲XML站點地圖。您需要將您的robots.txt改變

User-agent: * 
Allow:/
Sitemap: http://bizup.cloudapp.net/sitemap.xml 

編輯

它實際上比這更深一點,和Googlebot無法下載任何頁面都在您的網站。當Googlebot請求robots.txt或主頁時,返回的例外情況如下:

Cookieless表單身份驗證不支持此應用程序。

異常詳細信息:System.Web.HttpException:Cookieless表單身份驗證 不支持此應用程序。

[HttpException (0x80004005): Cookieless Forms Authentication is not supported for this application.] 
AzureBright.MvcApplication.FormsAuthentication_OnAuthenticate(Object sender, FormsAuthenticationEventArgs args) in C:\Projectos\AzureBrightWebRole\Global.asax.cs:129 
System.Web.Security.FormsAuthenticationModule.OnAuthenticate(FormsAuthenticationEventArgs e) +11336832 
System.Web.Security.FormsAuthenticationModule.OnEnter(Object source, EventArgs eventArgs) +88 
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80 
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +266 

FormsAuthentication嘗試,因爲它承認了Googlebot不支持cookie,但隨後在東西你FormsAuthentication_OnAuthenticate方法拋出一個異常,因爲它不希望接受Cookie的身份驗證使用Cookie的方式。

我覺得周圍的最簡單的方法是改變web.config中的以下,這從不斷嘗試使用Cookie的方式停止FormsAuthentication ...

<authentication mode="Forms"> 
    <forms cookieless="UseCookies" ...> 
    ... 
+0

現在看起來像一個答案!我很合理,現在檢查出來...... +1 – 2010-08-20 09:15:52

+0

怎麼看到異常?我一直在嘗試一些所謂的Googlebot模擬器,但這種例外情況沒有發生。 – 2010-08-20 10:01:18

+1

某些Googlebot模擬器使用舊版Googlebot中的標題,出於某種原因,只有最新版本會導致此問題。 Google的網站管理員工具在實驗室中具有「抓取Googlebot」功能,您可以假定它們始終與真實的Googlebot相匹配。 一旦你知道了要發送的正確頭文件,Fiddler允許你手工製作一個HTTP請求並檢查響應,所以我從Shaji的答案中複製了請求標題,以查看返回的內容。 (http://www.fiddler2.com/) – stevemegson 2010-08-20 10:50:47

1

生成robots.txt文件的腳本有問題。當GoogleBot訪問該文件時,它正在獲得500 Internal Server Error。這裏是頭檢查的結果:

REQUESTING: http://bizup.cloudapp.net/robots.txt 
GET /robots.txt HTTP/1.1 
Connection: Keep-Alive 
Keep-Alive: 300 
Accept:*/* 
Host: bizup.cloudapp.net 
Accept-Language: en-us 
Accept-Encoding: gzip, deflate 
User-Agent: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) 

SERVER RESPONSE: 500 INTERNAL SERVER ERROR 
Cache-Control: private 
Content-Type: text/html; charset=utf-8 
Server: Microsoft-IIS/7.0 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
Date: Thu, 19 Aug 2010 16:52:09 GMT 
Content-Length: 4228 
Final Destination Page 

您可以測試在這裏頭http://www.seoconsultants.com/tools/headers/#Report

+0

是的,出了點問題。史蒂夫馬格森幫助了我。謝謝! – 2010-08-20 11:34:43

1

我沒有問題,讓你的robots.txt

User-agent: * 
Allow:/
Sitemap: http://bizup.cloudapp.net/robots.txt 

但是不對其執行一個遞歸的robots.txt調用?

一個站點地圖被認爲是一個XML文件,請參閱Wikipedia

+0

是的,我已經知道,但這是我的虛擬錯誤。謝謝! 1 + – 2010-08-20 11:35:27

2

我固定在一個簡單的方法這個問題:只需添加一個robot.txt文件(與我的index.html文件在同一個目錄中),以允許所有訪問。我放棄了它,打算以這種方式允許所有訪問 - 但也許谷歌網站管理員工具然後找到由我的ISP控制的另一個robot.txt?

因此,至少對於某些ISP來說,即使您不想排除任何漫遊器,也應該有一個robot.txt文件,以防止出現這種可能的故障。