搜索
系统检测到您的用户名不符合规范:

一站多城市的网站如何部署【高手请进,官方技术进】

浏览:2393 发布日期:2014年03月11日 分类:求助交流 关键字: URL路由 一站网城市 城市类网站
一站点,多城市的网站,
如:http://www.xxx.com/beijing/
如:http://www.xxx.com/beijing/controller/action
一级目录是城市
二级是控制器
三级是对应控制器的操作
有人知道如何解决吗?
如果一级目录不是城市,即直接为正常路由
http://www.xxx.com/controller/action

我自己写了一个代码,可以解决,但是,好像出问题//HOME配制文件
return array(
// URL路由规则
'URL_ROUTE_RULES'=> array(
#城市路由
'/([a-z]+)/' => function($city){
$res = M('category')->where(array('type'=>'city','ename'=>$city))->find();
if($res){//如果城市存在,得新定义PATHINFO
//城市信息可以写入cookie
dump($res);
$_SERVER['PATH_INFO'] = str_replace($city, '', $_SERVER['PATH_INFO']);
}
return false;
},

#单品详情页(因为上面的也能匹配,所以这个路由规则失效)
'detail/:id\d$' => 'team/detail',
补充:因为老站的基础上,不想使用二级域名做城市,或是有其它的思路的,给个提示!

----------------------------------------------------
第三次补充方案:
貌似官方的办法都会出现问题,下面是我的另一个办法,好像可以实现!
修改入口文件,我的URL模式是3,兼容模式// 检测PHP环境
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');

// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
define('APP_DEBUG',True);

//目录安全文件不用生成
define('BUILD_DIR_SECURE', false);

// 定义应用目录
define('APP_PATH','./Application/');

//运行目录
define ( 'RUNTIME_PATH', './Runtime/' );

//判断一级目录是否合法并重置PATHINFO
$paths = explode('/',$_GET['s']);
$router = array('Home','Team','Admin','User');
if(!in_array($paths[1],$router)){
$_GET['s'] = str_replace($paths[1],'',$_GET['s']);
$_GET['city'] = $paths[1];
}

// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
JER.RIE
积分:516 等级:LV2
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /