mod_rewriteのREQUEST_FILENAMEはSCRIPT_FILENAMEに置き換える
表題の通りですが、サーバーによっては「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には提供されていない値かな? 知っている人がいたら教えてください)
28日で即戦力! サーバ技術者養成講座 [改訂4版]
¥3,881 (2025-04-17 14:05 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)イラスト図解式 この一冊で全部わかるサーバーの基本 第2版
¥1,683 (2025-04-17 14:04 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)山崎実業(Yamazaki) 冷蔵庫 ドリンクサーバー 2.8L ホワイト W10×D31.5×H17cm(蛇口・バルブ含む) タワー tower 食洗機対応 冷水筒 麦茶ポット 1582
¥2,873 (2025-04-17 17:14 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)※販売元、発送元が日本国外の場合、コピー品の恐れがありますのでご注意ください。 商品サイズ:W10×D31.5×H17cm(蛇口・バルブ含む) ▪商品重量:550g 品質表示 容器:メタクリルスチレン 蓋・仕切り板・蛇口・キャップ:ポリプロピレン パッキン・バルブ:シリコーン レバー:ABS樹脂 蛇口バネ:ステンレス鋼 耐熱温度 容器・レバー:90℃ 蓋・仕切り板・蛇口・キャップ・パッキン・バルブ:120℃ ▪耐冷温度:容器・レバー・蓋・仕切り板・蛇口・キャップ・パッキン・バルブ:-40℃ ... もっと読む
2010-04-08