我按Google的說明,上傳了google的html文件到網(wǎng)站的跟目錄,但就是無法通過驗(yàn)證,報(bào)錯是:我們檢測到您的 404(找不到文件)錯誤頁在標(biāo)頭中返回了 200 (成功) 狀態(tài)。 從說明上來看,他應(yīng)該是也查我網(wǎng)站的404頁面,而我的404頁面是返回了200,而不是404。于是我隨便打了一下一個錯誤的頁面,發(fā)現(xiàn),返回確實(shí)是200。那么我是不是把這個404頁面加一個header 404就可以了呢? 是的: 只在要404頁面的頭部加上:header("HTTP/1.0 404 Not Found");就可以了! 這樣,驗(yàn)證就通過了! 但是,我這個404頁面其實(shí)不是單純的404頁面,我還想讓Google收錄呢,而如果返回404,Google就不收錄了。不能為了驗(yàn)證這個,我就不作200了,那么怎么呢? 我想了一下,Google如果過來訪問我的404,他的user agent一定不一樣,于是,我在服務(wù)器端把所有訪問的user agent 都記錄一下,發(fā)現(xiàn)了Google在作這個驗(yàn)證時,共訪問我404頁面3次,而且三次的uset agent 都是不一樣的,分別是以下: Google-Sitemaps/1.0 Google-Site-Verification/1.0 Mozilla/3.0 (compatible; Indy Library) 正常的Google爬蟲是不是用這三個user agent的,從字面上來看,一個是google驗(yàn)證的,一個是google sitemap的,另一個應(yīng)該是一個開源的什么東西! 所以,在404的開頭如果判斷一下user agent,如果是三個,就返回404,否則全是200就行了: <?php $googleArray = array( 'Google-Sitemaps/1.0', 'Google-Site-Verification/1.0', 'Mozilla/3.0 (compatible; Indy Library)' ); if(in_array($_SERVER['HTTP_USER_AGENT'], $googleArray)){ header("HTTP/1.0 404 Not Found"); } else{ header("HTTP/1.0 200 OK"); } ?> OK,這樣,驗(yàn)證就通過了!但這樣,說實(shí)在的不太好,404就應(yīng)該是返回404,但有時有別的用處,也是沒有辦法的事! 只能這樣了!
|