在Codeigniter中开发一个子网站(微型网站)


Develop a sub-websites (micro websites) in Codeignitter


假设我有一个名为http://mysite.dev

我所拥有的:

因此,一些页面的网址将在下面。

主页:http://mysite.dev或http://mysite.dev/site/index或http://mysite.dev/home(站点/索引已路由到主页(

编辑配置文件:http://mysite.dev/user/edit或http://mysite.dev/edit-profile(用户/编辑已路由到编辑配置文件(

管理面板:http://mysite.dev/admin/或http://mysite.dev/admin/index

管理员视图用户:http://mysite.dev/admin/users或http://mysite.dev/admin/users/index

管理员编辑用户:http://mysite.dev/admin/users/edit/1

所以,基本上我的url模式如下。

http://mysite.dev/{module}/{controller}/}action}/{params}

我需要什么:

在保持主网站如上所述的同时,我需要有子网站(微网站(,它们将在主网站中共享相同的登录名。

因此,url模式如下所示。

http://mysite.dev/{microsite}/{module}/}controller}/action}/{params}

(微型网站为空意味着它是主网站。由于它只是一个名称参考,因此不会有任何目录来代表微型网站。(

这意味着,这个微型网站将没有子目录,因为它的微型网站名称将是动态的。

我需要知道的是:

我如何使用.htaccess或url路由来实现这种url模式来开发这种动态微型网站。


非常感谢。

好吧,我想我已经想好了!

首先,您需要将主站点和每个微型站点组织到各自的子目录中(用于控制器、模型、视图等(,例如:

application/controllers/main_site/module/etc
application/controllers/micro_one/module/etc
application/controllers/micro_two/module/etc

然后在routes文件夹中,您将执行类似于以下伪代码的操作:

Create array of microsite names (maybe get these from database)
Get the first URI segment
If URI segment is in microsites array
  $route['home'] = "{uri_segment/microsite_name}/module/controller";
else
  $route['home'] = "main_site/module/controller";

例如,你的微型站点阵列可能是:

array('micro_one', 'micro_two')

然后URLhttp://mysite.dev/micro_one/home将路由到

$route['home'] = "micro_one/home/index";

我希望我已经解释了足够多,让你开始你的项目!