改写thinkphp U方法让启用二级域名的时候U生成的地址正常

浏览:3774 发布日期:2014/02/27 分类:技术分享
项目部署了二级域名,链接地址是用U生成的,启用了二级域名后发现U生成的地址不对,加入www.olcms.com有分组home,shop,我配置二级域名让shop.olcms.com访问shop分组,然后U('/Shop/Index')生成的地址在用www.olcms.com/Shop访问的时候是正常的,如果用shop.olcms.com访问,生成的地址就是shop.olcms.com/Shop/Index.html,这样后面多了一个Shop/ 查遍手册没有方法搞定,最后和小伙伴修改了thinkphp的U方法后一切正常

thinkphp 3.1.3 common里面的functions.php167行下面加入一下代码,鉴于笔者水平有限,如果有什么错误,请指正,谢谢。 /*
* 开启子域名的时候修复url
* 例如 www.a.com有分组Home,让home.a.com访问的时候U生成的地址home替换www,去掉Home/
* modify author :赵利刚 王荣
* modify time:2014.2.26
*/
if(C('APP_SUB_DOMAIN_DEPLOY') == 1){
    foreach (C('APP_SUB_DOMAIN_RULES') as $key => $zlg) {            
        if(false !== strstr($url,$zlg[0])){                
            $domain = $_SERVER['HTTP_HOST']; //获取主机域名
            $domain = $key.strstr($domain,'.'); //替换当前域名为分组域名
            $url = str_replace($zlg[0],'',$url); //去掉多余pathinfo里面的分组
        }            
    }
}



本文地址:http://www.olcms.com/html/118.html
最佳答案
评论( 相关
后面还有条评论,点击查看>>