0

我在这里有这段代码:

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

并且 APP_URL 用于整个 HTML 模板。问题是 - 配置需要尽可能通用,因此在切换环境时要做的事情更少。

现在,当我为我的项目配置了虚拟主机时,它的工作原理是这样的,但是当它不是虚拟主机时,它有点像 localhost/myproject/ - $config['SUBFOLDER'] 必须手动设置为/我的项目/

如何以编程方式执行此操作?

4

3 回答 3

0

检查 URL 是否包含 LOCALHOST 或普通域名,并根据 URL 将您的配置包装在条件中。

于 2011-06-23T15:33:50.813 回答
0

例如,您可以在 htaccess 文件中设置一个变量。

#.htccess
SetEnv APPLICATION_ENV development

然后在您的网站上进行检查:

<?php
//live
$config['SUBFOLDER'] = '/';
//on localhost - override live settings
if(APPLICATION_ENV === 'development')
{
  $config['SUBFOLDER'] = '/myproject';
}

使用这种方法,您只需要更改 htaccess 文件中的一个变量。

如果您只是想检查您是否在 localhost 上运行,$_SERVER['HTTP_HOST']也可以进行检查:

<?php
if($_SERVER['HTTP_HOST'] === 'localhost')
{
  $config['SUBFOLDER'] = '/myproject';
}
于 2011-06-23T15:35:37.670 回答
0

我采取了稍微不同的方法..

if ($_SERVER['HTTP_HOST'] == 'testingserver') // local environment here
{
    // local settings
}
else if ( // remote environment here
    $_SERVER['HTTP_HOST'] == 'www.something.com' ||
    $_SERVER['HTTP_HOST'] == 'something.com'
) 
{
    // remote settings
}
else // error.. this shouldn't happen
{
    echo $_SERVER['HTTP_HOST']; 
}
于 2011-06-23T15:35:54.323 回答