0

最近サーバー/ドメインにSSL証明書をインストールしましたが、CIが機能しないようにhttps://見えるのでhttp://、404が入るようhttps://に見えますが、ビュー/コントローラーの中には、全体を必要としないものがありhttps://ます。私が構築しているサービスにユーザーがログインしていないときのページなど、表示可能です。私が思いついたのは、config.phpでbase_urlを構成することだけです。これは、サービスがパブリックビューイングエリアに到達する前に実行される複数の環境があるため、私にとってもうまく機能しません。

つまり、開発エリアがあり、各開発者が個別のサブドメインを持ち、現在の開発スタックがあり、作業内容に取り組んでいます。次に、本番環境に到達する前に、ステージングとQAエリア、およびベータエリアがあります。

だから私はこれらすべてを処理する方法についてのアイデアを探しています、そしてbase_url構成がなければ、これを管理しやすいソリューションにするためにどこから始めればよいのか分かりません。

4

1 に答える 1

2

CodeIgniterサイトにDEV、QA、および本番環境を使用していますが、これらはすべてHTTPSで正常に機能します。HTTPSを使用するために、特別な設定は必要ありません。おそらく、問題のあるURLを提供できますか?

以下は、複数のサブドメインを管理する方法です。

'/application/config/config.php'で、base_urlを空のままにして自動検出するように設定します。

$config['base_url'] = '';

私はあなたのURLが次のとおりであると仮定しています:

さまざまな環境を管理するには、ルートディレクトリでindex.phpを開き、次を追加します。

// This sets the environment based on the subdomain
$domain = explode('.', $_SERVER['HTTP_HOST']);
switch($domain[0])
{
    case 'dev':
        $env = 'dev';
            break;
        case 'qa':
        $env = 'qa';
            break;
    default:
        $env = 'production';
        break;                  
}

define('ENVIRONMENT', $env);

// Error reporting
if (defined('ENVIRONMENT'))
{
    switch (ENVIRONMENT)
    {
        case 'dev':
            error_reporting(E_ALL);
            ini_set("display_errors", 1);
            break;          
        case 'qa':
            case 'production':
            error_reporting(0);
            break;
        case 'production':
            error_reporting(0);
            break;
        default:
            exit('The application environment is not set correctly.');
    }
}

データベースがある場合は、「/ application / config/database.php」を次のように設定します。

// Use the respective DB based on the domain name
switch(ENVIRONMENT){
    case 'dev':
        $active_group = 'dev';
        break;
    case 'qa':
        $active_group = 'qa';
        break;
    default:
        $active_group = 'production';
    break;                  
}

// setup domain specific DB's
$db['dev']['hostname'] = 'mysql.stabletransit.com';
// etc..

$db['qa']['hostname'] = 'mysql.stabletransit.com';
// etc..

$db['production']['hostname'] = 'mysql.stabletransit.com';
// etc..
于 2012-10-11T19:26:35.910 に答える