dd

仿58一站多城市的实现及路由配置(二)

jerry thinkphp 2015年11月19日 收藏
接到网友询问zz.58.com这种如何实现的提问,我现在把这种方式的代码分享给大家。
Common/Conf/config.php
return array(
    'APP_SUB_DOMAIN_DEPLOY'   =>    1, // 开启子域名配置
    'APP_SUB_DOMAIN_RULES'    =>    array(
        'www'        => array('Home','city=zz'),//www指向主站,也可留空,让程序先进行IP自行判断访客来源城市
        'lbs'        => 'Admin',
        'lbc'        => 'Lbc',
        'biz'        => 'Biz',  
        'm'          => 'Wap',
        '*'          => array('Home','city=*'), // 二级泛域名指向城市模块
    ),
);
这里需要做一个域名泛解析,就是你配置域名解析*.58.com到你的网站服务器IP或者Cname。
这个时候,需要注意一点,使用zz.58.com这样的域名访问时,city=zz每个zz.58.com的页面都有这个参数,对于支付宝等某些需要传值给外部服务器的程序就可能导致出错,多传了参数,因此需要针对具体页面进行屏蔽。
其他的步骤就不详解了,无非就是根据city来读取对应城市的数据,显示页面。
这个Index控制器不需要使用Empty操作了。
namespace Home\Controller;
 use Think\Controller;
 class IndexController extends CommonController{
    public function index($p=1){
        //$p分页使用
        $cityName = $_GET(city);
        echo "分站是".$cityName;
        }
    }
其他代码可参考http://www.thinkphp.cn/code/733.html自行修改
dd