今天看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执行后的结果是一样的,所以可以加入这么一段代码,以后此浏览器再次访问的时候,就会自动跳到适合浏览器的页面去,不必要再次执行识别代码,可以应用到普通、无线客户端同一路由不同页面跳转中去