2011-05-06 85 views
6

基本上我试图与本土化子域名笨的应用程序,例如,如果我访问:单个笨应用通配符子域

ca.site.com - >它将运行在同一个系统,但显示加拿大内容。 us.site.com - >仍然运行相同的系统,但显示美国内容。

再加上如果我访问www.site.com,它会使用ip2country自动获得正确的定位,并会被重定向一样,如果来自英国,再导向到uk.site.com

只会有1个系统文件夹和1个应用程序文件夹:

根 /系统 /应用 的index.php

现在我想的URL远离他们是哪个本地化投入。像:

uk.site.com/profile/1将访问配置文件控制 ca.site.com/profile/3还将访问同一个控制器uk.site.com使用

我将如何能够实现这一点?

对不起,如果我的询问有点粗俗。但我希望有人能帮助我。

回答

2

更多信息也许有很多方法可以做到这一点...而是一个我能想到的把我的头顶部放东西在预加载自定义配置值确定,的确是这样的index.php文件...

/* 
* ------------------------------------------------------------------- 
* CUSTOM CONFIG VALUES 
* ------------------------------------------------------------------- 
* 
* The $assign_to_config array below will be passed dynamically to the 
* config class when initialized. This allows you to set custom config 
* items or override any default config values found in the config.php file. 
* This can be handy as it permits you to share one application between 
* multiple front controller files, with each file containing different 
* config values. 
* 
* Un-comment the $assign_to_config array below to use this feature 
* 
*/ 
    $region_prefix_var = explode('.', $_SERVER['HTTP_HOST']); 
    $assign_to_config['region_prefix'] = $region_prefix_var[0]; 

,然后在config.php文件

global $region_prefix_var; 
$config['base_url'] = $region_prefix_var[0].".site.com/"; 

...或者您可以根据$ _SERVER ['HTTP_HOST']值覆盖$ assign_to_config数组中的index.php文件中的base_url。然后,在任何其他控制器或任何你可以立足的东西掉

$this->config->item('region_prefix'); 

然后再移动所有的子域在同一目录下,你的应用程序中定位。

0

你必须找到一种方法来允许动态子域重定向(显然它可能带有一点点.htaccess mod_rewrite魔术),然后创建一个主控制器,并且索引方法的第一个参数是语言,然后子域重定向从(.*).site.com/(.*) = site.com/$1/$2,这应该工作,但它不是遵循传统的CodeIgniter的MVC方法,而更像是一种黑客而不是正确的方式来做到这一点,我相信别人会知道更多的语义方式这个工作。

如果我没有记错,子域名重定向某处记录在apache.org,你会找到一个比我提供的google