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には提供されていない値かな? 知っている人がいたら教えてください)
このページに関連のある記事はこちら
- プログラマーが「『超』入門 失敗の本質」を読んでみた。
- 「smtp; 550 5.0.0 Access denied」エラーでメールが送れない。
- なぜか$_POSTデータや$_FILESが空っぽになるのはどうして?
- 勝手に英文をツイートされてしまうハッキング事例が多数発生中!
- mkdirでディレクトリに「0777」が設定できない場合の解決法
- エラー解消:Fatal error: Call to undefined function spl_autoload_register
- PHPの開発環境(IDE)でベストなのはどれ?
- 「download.fedora.redhat.com」が繋がらない場合は...
- さくらのVPSにPlesk(コントロールパネル)が用意されていないか聞いてみた。
- レンタルサーバー選びでつい見落としがちな「回線速度」問題
- さくらのVPSの運営時にチェックしておきたいセキュリティ対策



コメントフォーム