我的工作之一是管理遍布全国各地的58个网站.他们每个人都有自己的域名,并且都位于Media Temple的同一个专属虚拟服务中.每个约19页的网站使用完全相同的html/css/php代码.对于每个使用的主题,图像从位于不同文件夹中的中央存储库提供给每个站点.
我想要做的是安装CI2的单个安装,包括应用程序文件夹,因为站点之间的所有不同内容都存储在数据库中.只要我可以给控制器一个唯一的属性编号(我希望他们在访问每个域中的index.php页面时可以这样做),那么我的所有网站都可以正常工作.
在我读过的所有答案中,建议是复制应用程序文件夹并重新使用核心.最适合我的是重用应用程序文件夹.然后,当我进行修改时,它将级联到所有网站,而我不必触摸58页.
这可能吗?
swa*_*ins 12
如果所有文件都相同,并且应用程序之间唯一的变化是来自数据库的数据,那么您可以这样做:
// index.php
$domain = $_SERVER['SERVER_NAME'];
switch ($domain)
{
case 'www.firstsite.com':
$this->load->database('firstsitedb');
break;
case 'www.secondsite.com':
$this->load->database('secondsitedb');
break;
default:
show_error('No Site Found');
break;
}
Run Code Online (Sandbox Code Playgroud)
**要么**
如果它们各自使用相同的数据库,并且您需要能够在查询中使用变量,那么只需基于switch/case设置常量,而不是加载不同的数据库.然后,您可以在查询中的整个应用程序中使用该常量.
// index.php
$domain = $_SERVER['SERVER_NAME'];
$site_id = 0; // default
switch ($domain)
{
case 'www.firstsite.com':
$site_id = 1;
break;
case 'www.secondsite.com':
$site_id = 2;
break;
default:
show_error('No Site Found');
break;
}
define('SITE_ID', $site_id);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6746 次 |
最近记录: |