前两天我朋友一网站换空间,换了空间后,网站速度测试是少不了的一个环节,因为这个idc的空间是可以月付的,如果速度不好,那就叫idc帮忙换到更好的服务器,如果idc商不肯换,那就考虑换空间商。
网站首页为什么被301重定向到index.html
到测速网站去测试网站速度之后,发现总体情况还可以,平均打开时间在3秒内。不过有一点令我不解的是,网站首页竟然自动被301重定向到了index.html,而记得在更换空间前并没有这个情况。
网站是dedecms搭建,由于我对dedecms也不怎么了解,因此不知道如何解决这个问题。
我看看网站的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的其他网站,没发现有301转向的问题。因此,我猜想是自身网站的某些设置的问题。
后来,我咨询空间商,空间商很有经验,他说应该是网站首页设置的顺序问题,把index.html排在第一,不要让index.php排在前面。我登录空间管理后台,按照空间商的说法做了网站默认首页的设置,把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转向到index.html呢?
我打开index.php这个文件,看看源代码是怎样写的。
原来,真的是代码的问题。在index.php文件里,出现了如下代码:
header('HTTP/1.1 301 Moved Permanently');
header('Location:index.html');
建议:慎用301
阅读此文章的站长,如果你也使用dedecms建站,那么请务必设置下网站默认首页,把index.html放在第一个位置,切勿把index.php放在前面,否则会出现301的问题。
301是告诉搜索引擎这个页面永久重定向到其他页面了,这个页面的权重应转移到被转向的页面上。这是使用301的意义所在,但是我觉得有时候这并不可靠,尤其是百度搜索引擎,它似乎不尊重某些约定规则,例如我在robot.stxt上声明了某个目录Disallow,但是还是被其抓取,这让人难以理解。因此,301还是慎用为好。
☉冒险试验:修改栏目地址跟踪百度缓存更新、301重定向生效时间 (2011-11-10 18:13:1)
☉实验数据表明:Google、Sogou、Yahoo支持301重定向 (2009-8-20 12:31:40)
Kaka 于 2012-9-25 14:18:10 回复这样修改后打开的一直是index.php,会陷入死循环,导致打不开网站了吧。
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。