軽量高速なPHPフレームワーク。動作条件がCodeIgniter3ならPHP5.6、CodeIgniter4ならPHP7.3なので少し前のサーバ環境でも問題なく動作します。

codeIgniter で ファイルを変更せずにテスト環境と本番環境を切り替える

● config/config.php 内の記述を「本番環境」「テスト環境」で切り替える

例)config.php 内の base_url を 「本番環境」hogehoge.com/ 「テスト環境」devsite.com/test/preview01/  で切り替えます。
同様に database.php も書き換えます

if ( preg_match("/hogehoge\.com/", $_SERVER['HTTP_HOST']) ){
	$config['base_url'] = 'https://hogehoge.com/';
} elseif ( preg_match("/devsite\.com//", $_SERVER['HTTP_HOST']) ){
	$config['base_url'] = 'https://devsite.com/test/preview01/';
} else {
	die('error [base_url] in config.php');
}

● .htaccess の mod_rewrite の rewrite_base を「本番環境」「テスト環境」で切り替える

RewriteBase の 代わりに環境変数 REWRITE_BASE をセットして使用します .htaccess を以下のようにします。

RewriteEngine On

# 環境変数 REWRITE_BASE を振り分ける(本番環境 https://hogehoge.com/ )
SetEnvIf Host ^hogehoge.com$ REWRITE_BASE=/

# 環境変数 REWRITE_BASE を振り分ける(テスト環境 https://devsite.com/test/preview01/ )
SetEnvIf Host ^devsite.com$ REWRITE_BASE=/test/preview01/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ %{ENV:REWRITE_BASE}/index.php?/$1 [L]

関連エントリー

No.1190
01/16 20:56

edit

CodeIgniter