MVC フレームワークである CodeIgniter が独自のindex.php
ファイルでファイル ルーティングを処理する方法を見てください。
$system_path = 'システム';
$application_folder = 'アプリケーション';
$view_folder = '';
/*
* -------------------------------------------------- --------------
* 信頼性を高めるためにシステム パスを解決する
* -------------------------------------------------- --------------
*/
// CLI リクエスト用に現在のディレクトリを正しく設定します
if (定義済み('STDIN'))
{
chdir(dirname(__FILE__));
}
if (($_temp = realpath($system_path)) !== FALSE)
{
$system_path = $_temp.'/';
}
そうしないと
{
// 末尾にスラッシュがあることを確認します
$system_path = rtrim($system_path, '/').'/';
}
// システム パスは正しいか?
if ( ! is_dir($system_path))
{
header('HTTP/1.1 503 サービスを利用できません。', TRUE, 503);
exit('システム フォルダのパスが正しく設定されていないようです。次のファイルを開いて修正してください: '.pathinfo(__FILE__, PATHINFO_BASENAME));
}
/*
* -------------------------------------------------- ------------------
* パスがわかったので、メイン パス定数を設定します。
* -------------------------------------------------- ------------------
*/
// このファイルの名前
define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME));
// システム フォルダへのパス
define('BASEPATH', str_replace('\\', '/', $system_path));
// フロントコントローラーへのパス (このファイル)
define('FCPATH', str_replace(SELF, '', __FILE__));
// 「システムフォルダ」の名前
define('SYSDIR', trim(strrchr(trim(BASEPATH, '/'), '/'), '/'));
// 「アプリケーション」フォルダへのパス
if (is_dir($application_folder))
{
if (($_temp = realpath($application_folder)) !== FALSE)
{
$application_folder = $_temp;
}
define('APPPATH', $application_folder.'/');
}
そうしないと
{
if ( ! is_dir(BASEPATH.$application_folder.'/'))
{
header('HTTP/1.1 503 サービスを利用できません。', TRUE, 503);
exit('アプリケーション フォルダのパスが正しく設定されていないようです。次のファイルを開いて、これを修正してください: '.SELF);
}
define('APPPATH', BASEPATH.$application_folder.'/');
}
// "views" フォルダへのパス
if ( ! is_dir($view_folder))
{
if ( ! empty($view_folder) && is_dir(APPPATH.$view_folder.'/'))
{
$view_folder = APPPATH.$view_folder;
}
elseif ( ! is_dir(APPPATH.'views/'))
{
header('HTTP/1.1 503 サービスを利用できません。', TRUE, 503);
exit('ビュー フォルダのパスが正しく設定されていないようです。次のファイルを開いて、これを修正してください: '.SELF);
}
そうしないと
{
$view_folder = APPPATH.'ビュー';
}
}
if (($_temp = realpath($view_folder)) !== FALSE)
{
$view_folder = realpath($view_folder).'/';
}
そうしないと
{
$view_folder = rtrim($view_folder, '/').'/';
}
define('VIEWPATH', $view_folder);
に依存しない.htaccess
でください。 が利用できない環境で問題が発生する可能性がmod_rewrite
あります。
views/
さらに、ハイパーリンクからディレクトリにファイルをロードしないでください。index.php からのページに対するこれらすべてのリクエストを にルーティングし、controllers/
それらのクラスを使用してファイルをロードします。アイデアについては、CodeIgniter のソースをもう一度よく見てください。