重载CodeIgniter的base_url

时间:2011-10-27 13:54:19

标签: php codeigniter-2

我有54个网站有不同的URL,但使用完全相同的codeigniter系统和应用程序文件夹(在您认为我以垃圾为生之前,现实是我们拥有/管理使用相同网站'模板'的54个属性,通过数据库和/或vhosts / httpdocs文件夹中的单独资产文件夹区分每个内容。)

我将CI_2.0.3的系统和应用程序文件夹放在每个域的httpdocs文件夹上方的vhosts目录中,并且可以从两个测试站点成功点击它们,每个站点都显示CI欢迎屏幕。

但是,我担心基本URL。如果一个是www.campuslodge.com而另一个是campuscreek.com,我如何在一个config / config.php文件中处理它?我可以通过存在于每个54域httpdocs文件夹中的index.php文件将属性编号传递给应用程序,因此我是否可以为base_url声明一个全局,并将config / config.php中的一个留空?或者我应该做别的事情吗?

最重要的是,我需要54个独特的域来指向系统和应用程序的单个CI安装,以便我可以进行一次全局更改,而不是54次。

2 个答案:

答案 0 :(得分:2)

在您的配置文件中,您可以将$config['base_url']设置为空字符串,并且codeigniter将猜测正确的协议和域是什么。因此,如果客户在http://www.example.com/controller/method/arg.html访问您的网站,则base_url()将返回http://www.example.com/

否则,您可以将其设置为$_SERVER['SERVER_NAME'],并将其设置为客户端访问的域名。

// in application/config.php
$config['base_url'] = 'http://' . $_SERVER['SERVER_NAME'];

答案 1 :(得分:0)

你回答了你的问题。在每个index.php中定义一个常量,例如:

define('_MY_BASE_URL', 'http://yourdoamin.com');

并在config.php中执行:

$config['base_url'] = _MY_BASE_URL;