3.0.2 から 3.0.3 へのアップグレード

アップグレードを行う前に、 index.phpファイルを静的ページに置き換えて、オフラインにする必要があります。

Step 1: CodeIgniter ファイルのアップグレード

system/ ディレクトリのすべてのファイルとディレクトリを新しいものに置き換えてください。

注釈

ユーザバージョンのファイルがディレクトリ内にある場合には、 最初にそれらのコピーを取っておいてください。

Step 2: ‘base_url’ 設定値が空でないか確認してください

$config['base_url'] がセットされていない時、CodeIgniter は自動的に Web サイトのベース URL を検出します。これは新しいアプリケーション開発を 開始する時に単に便宜上行われるものです。

自動検出は決して信頼できるものではなく、セキュリティへの影響もあります。 これが、 常に 手動で設定されている必要がある理由です。

CodeIgniter 3.0.3 の中の変更の一つには、この自動検出の動作方法があります。 より具体的には、クライアントがリクエストしたホスト名の代わりに 現在はサーバーのIPアドレスを返します。従って、自動検出に依存していた場合、 現在ではあなたの Web サイトの動作が変更されることがあります。

例として複数ドメインや http://https:// プレフィックスの両方を リクエストに応じて動的に使用することを許可する必要がある場合、 application/config/config.php は PHP スクリプトであるということを覚えておいてください。 数行のコードでこのロジックを作成することができます。例:

$allowed_domains = array('domain1.tld', 'domain2.tld');
$default_domain  = 'domain1.tld';

if (in_array($_SERVER['HTTP_HOST'], $allowed_domains, TRUE))
{
        $domain = $_SERVER['HTTP_HOST'];
}
else
{
        $domain = $default_domain;
}

if ( ! empty($_SERVER['HTTPS']))
{
        $config['base_url'] = 'https://'.$domain;
}
else
{
        $config['base_url'] = 'http://'.$domain;
}