我这里有这个代码:
$config['SUBFOLDER'] = '/';
$config['APP_URL'] = 'http://'.$_SERVER['HTTP_HOST'].$config['SUBFOLDER'];
在整个HTML模板中使用APP_URL。问题是 - 配置需要尽可能通用,因此切换环境时要做的事情少。
现在,当我为我的项目配置虚拟主机时,它就像这样工作,但当它不是虚拟主机,而是一种localhost / myproject / - $ config ['SUBFOLDER']必须是手动设置为/ myproject /
如何以编程方式执行此操作?
答案 0 :(得分:0)
检查URL是否包含LOCALHOST或普通域名,并根据URL的条件将您的配置包装起来。
答案 1 :(得分: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';
}
答案 2 :(得分: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'];
}