mod_rewriteのREQUEST_FILENAMEはSCRIPT_FILENAMEに置き換える
presented by 役に立つかもしれないBlog
表題の通りですが、サーバーによっては「REQUEST_FILENAME」という環境変数を持っていない場合があるためです。
「そんなことしちゃって大丈夫なの!?」と思われるかもしれませんが、大丈夫! mod_rewriteの公式ドキュメントに次のように書いてあります。
The variables SCRIPT_FILENAME and REQUEST_FILENAME contain the same value - the value of the filename field of the internal request_rec structure of the Apache server. The first name is the commonly known CGI variable name while the second is the appropriate counterpart of REQUEST_URI (which contains the value of the uri field of request_rec).
訳はこんな感じ。
SCRIPT_FILENAME と REQUEST_FILENAME は同じ値を持っています。 どんな値かというと、Apacheサーバーの request_rec 構造体(まぁ、データの塊)内の filenameフィールド値のことなんです。 SCRIPT_FILENAMEのほうはご存知CGI変数で、REQUEST_FILENAMEのほうは REQUEST_URIとよく似た値です。(REQUEST_URIはrequest_rec 構造体内の uriフィールド値と同じ値です)
ということです。
PHPでやってる人はphpinfo()で見てみるといいですよ。 「$_SERVER['REQUEST_FILENAME']」っていう値がない場合があるので。(もしかしてPHPには提供されていない値かな? 知っている人がいたら教えてください)
このページに関連のある記事はこちら
- さくらのVPSの運営時にチェックしておきたいセキュリティ対策
- Linuxで空のディレクトリをcron等で定期的に削除する方法
- PHPでMovableTypeのエントリーDBをSQL検索する方法
- EC-CUBEで好きな時にログを出力する方法
- PowerPointでPDF書き出し時のテキストが消える問題と解決法
- PHPでMovableType5のデータベースにアクセスする方法
- さくらのVPSのPHP+MySQLを最新のものにアップデート。
- MySQL(innoDB)でリレーション設定時に「インデックスは設定されていません」エラー
- Webシステムがメール配信する際に陥りやすい3つの罠
- さくらのVPSでPHPにGDモジュールをインストールする
- Office2007ファイル(docx,xlsx,pptx)のMIME-Typeを正しく判定する方法



コメントフォーム