本帖最后由 51kuku 于 2016-7-14 12:14 编辑
写在前面,好久没接触DZ了,最近需要使用发现新版index.php的强大,使用多域名已经很方便了,但启用html生成一个index.html后问题来了,index.php失效了。这么强大的功能这么可能不完美呢,下面我们一步一步来修改下吧。本文的使用场景为:多域名、门户启用静态、并且为首页。仅供看官参考!
1. 打开/sourcefunction/cache/cache_setting.php 2. 在第63行附近添加 代码 : - if($setting['skey'] == 'makehtml'){
- $data['domain']['htmlinfo'] = $setting['svalue'];
- }
复制代码 目的:在index.php中会引入@include_once './data/sysdata/cache_domain.php';此时全局变量$_G还未初始化,所以这时无法判断是否启用了html功能,故写到这个配置文件中,以便引用
1. 打开/index.php 2. 在第130行左右
代码:
- if($_ENV['curapp']=='portal' and $_ENV['domain']['htmlinfo']['flag']===1){
- echo file_get_contents($_ENV['domain']['htmlinfo']['indexname'].'.'.$_ENV['domain']['htmlinfo']['extendname']);
- }else{
- require './'.$_ENV['curapp'].'.php';
- }
复制代码
目的:当启用html时自动加载静态首页文件,当然你可能说会增加一个IO,但比起动态来说效率还是可观的,自带的函数效率也是最优的。那么到这步你可能会有其他选择:
a.301跳转
- header("HTTP/1.1 301 Moved Permanently");
- header("Location: ".$_ENV['domain']['htmlinfo']['indexname'].'.'.$_ENV['domain']['htmlinfo']['extendname']);
- exit();
复制代码
这样是没有任务问题的,不介意小尾巴的你可以选择哦~
b.根据文件的时间决定是否使用静态文件 - $htmlFile = $_ENV['domain']['htmlinfo']['indexname'].'.'.$_ENV['domain']['htmlinfo']['extendname'];
- $filem = @filemtime($htmlFile);
-
- if(($filem+(1*3600))<=time()){
- echo file_get_contents($htmlFile);
- }else{
- require './portal.php';
- }
复制代码
这样也是没问题的,当文件时间大于当前时间1个小时,依然为动态模式,对于懒货的你这个方法的好处是,再也不怕忘记更新首页了。
3. 打开robots.txt 4. 新增 Disallow: /html.html 当然如果你选择301的话切记取消这步,另外关于静态首页的命名尽量不用index,因为很多虚拟主机index为默认首页,这样可能又会造成index.php的路由功能失效,本文用的html.html
|