前兩天我朋友一網(wǎng)站換空間,換了空間后,網(wǎng)站速度測(cè)試是少不了的一個(gè)環(huán)節(jié),因?yàn)檫@個(gè)idc的空間是可以月付的,如果速度不好,那就叫idc幫忙換到更好的服務(wù)器,如果idc商不肯換,那就考慮換空間商。
網(wǎng)站首頁為什么被301重定向到index.html
到測(cè)速網(wǎng)站去測(cè)試網(wǎng)站速度之后,發(fā)現(xiàn)總體情況還可以,平均打開時(shí)間在3秒內(nèi)。不過有一點(diǎn)令我不解的是,網(wǎng)站首頁竟然自動(dòng)被301重定向到了index.html,而記得在更換空間前并沒有這個(gè)情況。
網(wǎng)站是dedecms搭建,由于我對(duì)dedecms也不怎么了解,因此不知道如何解決這個(gè)問題。
我看看網(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)站的某些設(shè)置的問題。
后來,我咨詢空間商,空間商很有經(jīng)驗(yàn),他說應(yīng)該是網(wǎng)站首頁設(shè)置的順序問題,把index.html排在第一,不要讓index.php排在前面。我登錄空間管理后臺(tái),按照空間商的說法做了網(wǎng)站默認(rèn)首頁的設(shè)置,把index.html放在第一個(gè)。果真,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的設(shè)計(jì)問題
雖然問題得以解決,但我對(duì)這個(gè)問題仍然有點(diǎn)興趣。為什么默認(rèn)首頁是index.php時(shí),會(huì)自動(dòng)301轉(zhuǎn)向到index.html呢?
我打開index.php這個(gè)文件,看看源代碼是怎樣寫的。
原來,真的是代碼的問題。在index.php文件里,出現(xiàn)了如下代碼:
header('HTTP/1.1 301 Moved Permanently');
header('Location:index.html');
建議:慎用301
閱讀此文章的站長(zhǎng),如果你也使用dedecms建站,那么請(qǐng)務(wù)必設(shè)置下網(wǎng)站默認(rèn)首頁,把index.html放在第一個(gè)位置,切勿把index.php放在前面,否則會(huì)出現(xiàn)301的問題。
301是告訴搜索引擎這個(gè)頁面永久重定向到其他頁面了,這個(gè)頁面的權(quán)重應(yīng)轉(zhuǎn)移到被轉(zhuǎn)向的頁面上。這是使用301的意義所在,但是我覺得有時(shí)候這并不可靠,尤其是百度搜索引擎,它似乎不尊重某些約定規(guī)則,例如我在robot.stxt上聲明了某個(gè)目錄Disallow,但是還是被其抓取,這讓人難以理解。因此,301還是慎用為好。