CodeIgniter3でviewフォルダを変更してhtmlを読み込む
CodeIgniter3でviewフォルダを変更してhtmlを読み込む時の覚え書き。
publicフォルダが公開フォルダで、そこにhtmlファイルが入っていることが前提。
viewフォルダを変更する
public/index.phpファイルを開き、$view_folderの値を設定する。
publicフォルダをviewフォルダにするには以下の通り。
$view_folder = dirname(__FILE__);
controllerを追加する
htmlファイルが存在する場合、htmlを読み込むようなコントローラーを作成する。
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Pages extends CI_Controller { public function __construct() { parent::__construct(); } public function index($page = 'index') { $this->load->view($page.'.html'); } public function view($dir, $page) { if (!file_exists(FCPATH.$dir.'/'.$page.'.html')) { show_404(); } $this->load->view($dir.'/'.$page.'.html'); } }
routes.phpを変更する
application/config/routes.phpに上で設定したコントローラーへのアクセスを追加する。
$route['default_controller'] = 'pages'; $route['(:any).html'] = 'pages/index/$1'; $route['(:any)/(:any).html'] = 'pages/view/$1/$2'; $route['(:any)'] = 'pages/view/$1/index';
.htaccessファイルの設定について
.htaccessファイルで静的なファイル以外をindex.phpへリダイレクトするよう設定する。
RewriteEngine On RewriteCond $1 !^(.+\.js$|.+\.css$|.+\.jpg$|.+\.png$|.+\.ico$) RewriteRule ^(.*)$ index.php?/$1 [L]