今天看discuz x2源码的时候,发现了一个问题,于是动手解决之
问题:安装好discuz x2后,想修改index.php中的代码,可是无论怎么修改,在浏览器里输入.../index.php,浏览器始终是跳到forum.php去,就是把index.php里的内容全部删除了,它还是跳过去,很疑惑。
分析,很可能是浏览器端的缓存导致的,可是怎么刷新也没用,关闭浏览器,重新打开也不行,于是换火狐,没能跳到forum.php,断定浏览器端的问题,去查找关于浏览器端缓存的资料,无果,于是再研究discuz代码,发现了这么一句话
原来,index.php第一次执行的时候,告诉了浏览器此文件被永久移除了,请转至$url所代表的网页去,这样,以后当用户输入index.php浏览器就会认为其被移除了,自动转至$url去,所以怎么修改index.php都没有用,可以清除缓存,它就会重新请求index.php了
应用:
index.php文件主要是做一些客户端的识别,对于同一个浏览器,index.php执行后的结果是一样的,所以可以加入这么一段代码,以后此浏览器再次访问的时候,就会自动跳到适合浏览器的页面去,不必要再次执行识别代码,可以应用到普通、无线客户端同一路由不同页面跳转中去
问题:安装好discuz x2后,想修改index.php中的代码,可是无论怎么修改,在浏览器里输入.../index.php,浏览器始终是跳到forum.php去,就是把index.php里的内容全部删除了,它还是跳过去,很疑惑。
分析,很可能是浏览器端的缓存导致的,可是怎么刷新也没用,关闭浏览器,重新打开也不行,于是换火狐,没能跳到forum.php,断定浏览器端的问题,去查找关于浏览器端缓存的资料,无果,于是再研究discuz代码,发现了这么一句话
header("HTTP/1.1 301 Moved Permanently");
header("location: $url");原来,index.php第一次执行的时候,告诉了浏览器此文件被永久移除了,请转至$url所代表的网页去,这样,以后当用户输入index.php浏览器就会认为其被移除了,自动转至$url去,所以怎么修改index.php都没有用,可以清除缓存,它就会重新请求index.php了
应用:
index.php文件主要是做一些客户端的识别,对于同一个浏览器,index.php执行后的结果是一样的,所以可以加入这么一段代码,以后此浏览器再次访问的时候,就会自动跳到适合浏览器的页面去,不必要再次执行识别代码,可以应用到普通、无线客户端同一路由不同页面跳转中去
本文解析了Discuz X2中index.php文件被浏览器自动跳转至forum.php的原因,并介绍了如何通过清除缓存解决该问题。同时,文章探讨了如何利用index.php实现客户端识别和页面跳转优化。
519

被折叠的 条评论
为什么被折叠?



