CodeIgniter3で公開ディレクトリを別ディレクトリにする手順




たまにPHP5系案件があるのですが、Laravelなど新しいフレームワークは使えません。
PHP5系はサポート期限が・・・となるのですが、中小企業・零細企業になるとすぐにバージョンアップしてというわけにはいかないところが多いためひとまずPHP5系でなんとかしないといけません。
そういうときにPHP5.4系から対応している(推奨はPHP5.6以上ですが)CodeIgniter3を利用します。
ただでさせセキュリティが不安なのでせめて公開ディレクトリだけは別に切り出したいので、毎回行っている公開ディレクトリを外出しにする設定を紹介します。

CodeIgniter3の公開ディレクトリ外出し手順

前提

設定変更前後のディレクトリ構成は以下とします。

設定変更前:
CodeIgniterディレクトリ:/path/to/ci/
公開ディレクトリ:/path/to/ci/

設定変更前:
CodeIgniterディレクトリ:/path/to/ci/
公開ディレクトリ:/path/to/public/

手順

(1)まずダインロードしたCodeInginterを解凍し、/path/to/ci/に格納します。
(2)/path/to/ci/index.phpを/path/to/public/へコピーします。
(3)/path/to/public/.htaccessを作成し、以下を設定します。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

以上で設定は完了です。
ブラウザからインストールしたサイトにアクセスし、
「Welcome to CodeIgniter!」
の画面が表示されれば設定完了です。

これだけでhttp通信で直接アクセス出来るファイルが大幅に減るので多少のセキュリティ対策にはなります。