前兩天我朋友一網(wǎng)站換空間,換了空間后,網(wǎng)站速度測試是少不了的一個環(huán)節(jié),因為這個idc的空間是可以月付的,如果速度不好,那就叫idc幫忙換到更好的服務器,如果idc商不肯換,那就考慮換空間商。
網(wǎng)站首頁為什么被301重定向到index.html
到測速網(wǎng)站去測試網(wǎng)站速度之后,發(fā)現(xiàn)總體情況還可以,平均打開時間在3秒內(nèi)。不過有一點令我不解的是,網(wǎng)站首頁竟然自動被301重定向到了index.html,而記得在更換空間前并沒有這個情況。
網(wǎng)站是dedecms搭建,由于我對dedecms也不怎么了解,因此不知道如何解決這個問題。
我看看網(wǎng)站的header,顯示如下:
HTTP/1.1 301 Moved Permanently
Connection: close
Date: Mon, 20 Sep 2012 17:41:34 GMT
Content-Type: text/html
Location: index.html
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-Powered-By: PHP/5.2.17
HTTP/1.1 200 OK
Date: Mon, 20 Sep 2012 17:41:34 GMT
Content-Length: 42514
Content-Type: text/html
Content-Location: http://www.abc.com/index.html
Last-Modified: Thur, 20 Sep 2012 12:44:32 GMT
Accept-Ranges: bytes
ETag: "d8b9986528fcd1:11ae11"
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
我一開始懷疑是空間的問題,查了下同IP的其他網(wǎng)站,沒發(fā)現(xiàn)有301轉(zhuǎn)向的問題。因此,我猜想是自身網(wǎng)站的某些設置的問題。
后來,我咨詢空間商,空間商很有經(jīng)驗,他說應該是網(wǎng)站首頁設置的順序問題,把index.html排在第一,不要讓index.php排在前面。我登錄空間管理后臺,按照空間商的說法做了網(wǎng)站默認首頁的設置,把index.html放在第一個。果真,301問題解決!
檢查header,是200了:
HTTP/1.1 200 OK
Connection: close
Date: Thur, 20 Sep 2012 17:28:00 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-Powered-By: PHP/5.2.17
Content-Type:text/html;charset=utf-8
根源:dedecms的設計問題
雖然問題得以解決,但我對這個問題仍然有點興趣。為什么默認首頁是index.php時,會自動301轉(zhuǎn)向到index.html呢?
我打開index.php這個文件,看看源代碼是怎樣寫的。
原來,真的是代碼的問題。在index.php文件里,出現(xiàn)了如下代碼:
header('HTTP/1.1 301 Moved Permanently');
header('Location:index.html');
建議:慎用301
閱讀此文章的站長,如果你也使用dedecms建站,那么請務必設置下網(wǎng)站默認首頁,把index.html放在第一個位置,切勿把index.php放在前面,否則會出現(xiàn)301的問題。
301是告訴搜索引擎這個頁面永久重定向到其他頁面了,這個頁面的權(quán)重應轉(zhuǎn)移到被轉(zhuǎn)向的頁面上。這是使用301的意義所在,但是我覺得有時候這并不可靠,尤其是百度搜索引擎,它似乎不尊重某些約定規(guī)則,例如我在robot.stxt上聲明了某個目錄Disallow,但是還是被其抓取,這讓人難以理解。因此,301還是慎用為好。