404錯誤提示302的原因分析及解決

    最近發現一奇怪現象,網站一些鏈接被百度收錄,失效後一直無法去除,經過一番研究找到一些端倪。

    首先用谷歌瀏覽器的firebug工具測試404,發現提示302錯誤。302錯誤表示被請求的資源暫時轉移(Moved temporatily),然後會給出一個轉移後的URL。雖然對訪問的用戶而言,HTTP狀態碼究竟是“404”還是“302”來說並沒有什麼區別,但對搜索引擎這則是相當重要的。
    搜索引擎蜘蛛在請求某個URL時得到“404”狀態迴應時,即知道該URL已經失效,便不再索引該網頁,並向數據中心反饋將該URL表示的網頁從索引數據庫中刪除,當然,刪除過程有可能需要一段時間;而當搜索引擎得到“302”或“200”狀態碼時,則會認爲該url是有效的,索引數據庫中便會一直保留,於是就會出現搜索引擎上收錄了很多失效鏈接卻一直不能去除的現象,從而有可能導致網站被降權。
    由此看出,自定義404錯誤頁面是增強用戶體驗的很好的做法,但在應用過程中一定要注意對搜索引擎的影響,譬如:錯誤的服務器端配置導致返回“200”狀態碼,或自定義404錯誤頁面使用Meta Refresh導致返回“302”狀態碼。正確設置的自定義404錯誤頁面,不僅應當能夠正確地顯示,同時,應該返回“404”錯誤代碼,而不是 “200”或“302”。
    解決方法如下:在Apache的配置文件中,注意ErrorDocument 404後面不要寫URL地址,應該寫具體文件路徑,ErrorDocument 404 "/404.html"這樣子。修改後重啓httpd服務,再測試,提示已變爲404。也可以用404測試工具,http://tool.seowhy.com/http404/。
    需要注意,虛擬主機對應的各個目錄下也需要有404.html這個文件,否則各個頻道下的無效鏈接將返回系統默認的404提示頁面,而不能返回自定義的404頁面。也就是說404.html這個文件要同時放置在網站根目錄和虛擬主機對應的各個目錄下。我的方法是在虛擬主機對應的各個目錄下建立符號鏈接文件,鏈接到根目錄下的404.html文件,這樣如果以後修改404.html時,只需修改根目錄下的404.html文件即可。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章