2010-10-06 51 views

回答

8

您采用的方法取决于子域与主站点的差异。如果他们都非常相似,并使用相同的代码库:

$config['base_url'] = 'http://'.$_SERVER['HTTP_HOST'].'/'; 

如果你需要一些设置,以在不同的子域不同,你可以像这样创建一个配置文件:

switch($_SERVER['HTTP_HOST']){ 
    case 'www.example.com': 
     // settings specific to www subdomain 
     $config['foo'] = 'bar'; 
    break; 

    case 'apl.example.com': 
     // settings specific to apl subdomain 
     $config['foo'] = 'baz'; 
    break; 
} 

另一个方法将包括为子域设置单独的应用程序文件夹,但指向相同的系统文件夹。如果您组织这样你的文件系统:

example.com 
    common 
    system 
    application 
    www 
    htdocs 
    application 
    apl 
    htdocs 
    application 

然后,您可以在公共/ system目录指向每个htdocs文件夹中的index.php文件。你也可以把你想要在共同/应用程序中的所有子域之间共享的代码放到你的代码中。

2

您需要在DNS中创建子域名,或者为任何子域名先设置通配符。

一旦你运行了,我想这是在配置文件中切换base_url的情况。

if ($_SERVER['SERVER_NAME'] == "api.blah.com") { 
    $config['base_url'] = "http://api.blah.com/"; 
} 
else { 
    $config['base_url'] = "http://www.blah.com/"; 
} 
相关问题