ファイル名をディレクトリ名のように
PATH_INFOによるファイル名をディレクトリ名のように見せる方法を紹介します。
通常、以下のような引数を用いてスクリプトに動的な振る舞いを行います。
http://rakuto.net/browse.php?page=path_info
rakutoネットではPATH_INFOを用いて以下のように引数をPATHに組み込んでいます。
http://rakuto.net/browse/path_info/
.htaccess等のHTTPサーバ設定
## PathInfoを有効
AcceptPathInfo On
## HTTPモジュールの場合
ForceType application/x-httpd-php
## CGIの場合
ForceType application/x-httpd-cgi
FilesMatchによりbrowseというファイルのForceTypeがPHPスクリプトである
と宣言しています。
詳しくはApacheのマニュアルを参照してください。
スクリプト側の処理
/**
* パスインフォからページ名を取得
* CGIの場合は$_SERVER['ORIG_PATH_INFO']になります。
*/
$path_info = empty($_SERVER['PATH_INFO'])?”:$_SERVER['PATH_INFO'];
$args = explode(‘/’,$path_info);
// PATH_INFOには’/'から始まるpath情報が入る為、引数は1番目になります。
$page = empty($args[1])?’page’:$args[1];
?>
PATH_INFOを使ったFront Controller
/* パスインフォからページ名を取得 */
$path_info = empty($_SERVER['PATH_INFO'])?”:$_SERVER['PATH_INFO'];
$args = explode(‘/’,$path_info);
$page = empty($args[1])?’tree’:$args[1];
$modules = array(
‘tree’,
‘browse’,
‘post’,
‘search’,
‘summary’
);
/* 不正アクセスがないかチェック */
if (!in_array($page,$module)) {
$page = ‘tree’;
}
/* モジュールの読み込み */
include_once $page.’.php’;
?>

はてなに追加
MyYahoo!に追加
del.icio.usに追加
livedoorClipに追加
Googleに追加
Technoratiに追加
Buzzurlに追加
Diggに追加
Bloglinesに追加
DRECOMに追加
niftyクリップに追加
pookmarkに追加
Choixに追加








