0

私はここにこのコードを持っています:

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

また、APP_URLはHTMLテンプレート全体で使用されます。問題は、構成を可能な限りユニバーサルにする必要があるため、環境を切り替えるときに行うことが少なくなることです。

これで、プロジェクトの仮想ホストを構成したときにこのように機能しますが、仮想ホストではなく、ローカルホスト/myproject/のようなものである場合-$config['SUBFOLDER']を手動で設定する必要があります/私のプロジェクト/

これをプログラムで行うにはどうすればよいですか?

4

3 に答える 3

0

URLにLOCALHOSTまたは通常のドメイン名が含まれているかどうかを確認し、URLが何であるかに応じて構成を条件付きでラップします。

于 2011-06-23T15:33:50.813 に答える
0

たとえば、htaccessファイルに変数を設定できます。

#.htccess
SetEnv APPLICATION_ENV development

次に、Webサイトでこれを確認します。

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

このアプローチでは、htaccessファイルの1つの変数を変更するだけで済みます。

ローカルホストで実行しているかどうかを確認したいだけの場合は、確認を$_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 に答える