rakutoネット
お問合せ 免責事項 Q&A 掲示板 サイト管理 リンク サイトマップ
HOME > PATH_INFOで拡張子を隠す

PATH_INFOで拡張子を隠す


ファイル名をディレクトリ名のように

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モジュールの場合
<FilesMatch "^browse$">
    ForceType application/x-httpd-php
</FilesMatch>
 
## CGIの場合
<FilesMatch "^browse$"> 
    ForceType application/x-httpd-cgi
</FilesMatch>

FilesMatchによりbrowseというファイルのForceTypeがPHPスクリプトである
と宣言しています。
詳しくはApacheのマニュアルを参照してください。

スクリプト側の処理

<?php
/**
 * パスインフォからページ名を取得 
 * 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

<?php
/* パスインフォからページ名を取得 */
$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';
?>


<<プログレスバー
PHP Tips トラックバック>>

PHPリング

@PHP.ring Home
<5 <1 Random List 1> 5>

rktSQLite

  • sourceforge.jp

広告


アマゾン検索

サーチ:
Amazon.co.jpアソシエイト

カテゴリ

  •  Templateエンジンのすすめ Templateエンジンのすすめ
  •  SQLiteをやってみよう SQLiteをやってみよう
  •  SQLite SQLコマンド一覧 SQLiteコマンド一覧
  •  SQLite 管理プログラムSQLite 管理
  •  はじめてのEclipse はじめてのEclipse
  •  PHP SQLiteのTIPS PHP SQLiteのTIPS
  •  サンプル サンプル/ダウンロード
  •  リンク リンク
  •  掲示板 掲示板

メニュー

  •  incoude pathを通す
  •  カレンダー
  •  排他処理
  •  PEAR DB
  •  画像アップロード
  •  プログレスバー
  •  PATH_INFOで拡張子を隠す
  •  トラックバック
  •  PEARのトラックバック
  •  iMagickでGIFアニメ
  •  メモリ上の画像をImageMagickする
  •  暗号化と復号化
  •  strtotime()でmonth処理

キーワード検索

キーワード



最近のTB

  •  2006/03/13さくらのブログに挑戦[rakutoネットブログ]
  •  2006/01/20レーザーチャートの作成方法[脳内研究所]

Summary

  •     ATOM(XML)
  •     RDF(XML)
  •     RSS0.92(XML)
  •     RSS2.0(XML)

Powered by

  •     PHP
  •     Smarty
  •     SQLite
  •     MySQL
Copyright (C) 2005 `rakuto.net' All Rights Reserved.