Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[修改] 多域名、开启html时,保持index.php的路由功能

[复制链接]
51kuku 发表于 2016-7-14 12:09:06 | 显示全部楼层 |阅读模式
本帖最后由 51kuku 于 2016-7-14 12:14 编辑

写在前面,好久没接触DZ了,最近需要使用发现新版index.php的强大,使用多域名已经很方便了,但启用html生成一个index.html后问题来了,index.php失效了。这么强大的功能这么可能不完美呢,下面我们一步一步来修改下吧。本文的使用场景为:多域名、门户启用静态、并且为首页。仅供看官参考!

1.      打开/sourcefunction/cache/cache_setting.php
2.      在第63行附近添加
   
         代码 :        
  1. if($setting['skey'] == 'makehtml'){
  2.     $data['domain']['htmlinfo'] = $setting['svalue'];
  3. }
复制代码
             目的:在index.php中会引入@include_once './data/sysdata/cache_domain.php';此时全局变量$_G还未初始化,所以这时无法判断是否启用了html功能,故写到这个配置文件中,以便引用
1.      打开/index.php
2.      在第130行左右


代码:

  1. if($_ENV['curapp']=='portal' and $_ENV['domain']['htmlinfo']['flag']===1){
  2.     echo file_get_contents($_ENV['domain']['htmlinfo']['indexname'].'.'.$_ENV['domain']['htmlinfo']['extendname']);
  3.    }else{
  4.     require './'.$_ENV['curapp'].'.php';
  5.    }
复制代码

目的:当启用html时自动加载静态首页文件,当然你可能说会增加一个IO,但比起动态来说效率还是可观的,自带的函数效率也是最优的。那么到这步你可能会有其他选择:

      a.301跳转

  1. header("HTTP/1.1 301 Moved Permanently");
  2. header("Location: ".$_ENV['domain']['htmlinfo']['indexname'].'.'.$_ENV['domain']['htmlinfo']['extendname']);
  3. exit();
复制代码

      这样是没有任务问题的,不介意小尾巴的你可以选择哦~

      b.根据文件的时间决定是否使用静态文件
  1. $htmlFile = $_ENV['domain']['htmlinfo']['indexname'].'.'.$_ENV['domain']['htmlinfo']['extendname'];
  2.                 $filem = @filemtime($htmlFile);
  3.                
  4.                 if(($filem+(1*3600))<=time()){
  5.     echo file_get_contents($htmlFile);
  6.                 }else{
  7.     require './portal.php';
  8.                 }
复制代码

     这样也是没问题的,当文件时间大于当前时间1个小时,依然为动态模式,对于懒货的你这个方法的好处是,再也不怕忘记更新首页了。

3.      打开robots.txt
4.      新增 Disallow: /html.html
当然如果你选择301的话切记取消这步,另外关于静态首页的命名尽量不用index,因为很多虚拟主机index为默认首页,这样可能又会造成index.php的路由功能失效,本文用的html.html


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-26 09:13 , Processed in 0.014918 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表