在Codeignitter中开发子网站(微型网站)

时间:2015-09-16 10:16:35

标签: php .htaccess codeigniter codeigniter-url codeigniter-routing


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

我拥有的:

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

主页:http://mysite.devhttp://mysite.dev/site/indexhttp://mysite.dev/home (网站/索引已被路由到家)

修改个人资料:http://mysite.dev/user/edithttp://mysite.dev/edit-profile (用户/编辑已路由到编辑个人资料)

管理员信息中心:http://mysite.dev/admin/http://mysite.dev/admin/index

管理员查看用户:http://mysite.dev/admin/usershttp://mysite.dev/admin/users/index

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

所以,基本上我的网址模式如下所示。

http://mysite.dev/ {模块} / {控制器} / {行动} / {PARAMS}

我需要什么:

在保持主站点的同时,我需要有子网站(微型网站),它们将在主站点共享相同的登录信息。

这样,网址格式如下所示。

http://mysite.dev/ {微型} / {模块} / {控制器} / {行动} / {PARAMS}

(微型网站是空的意味着它是主网站。没有任何目录可以代表微型网站,因为它只是一个名称参考。)

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

我需要知道的是:

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


谢谢!

1 个答案:

答案 0 :(得分:1)

好吧,我想我已经抓住了这个!

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

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')

然后网址http://mysite.dev/micro_one/home将路由到

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

我希望我已经解释了这个,足以让你开始你的项目!