日曜日, 8 月 30th, 2009 | Author: djodjo
CGIやPHPでとれる環境変数、REQUEST_URIとSCRIPT_NAMEですが、普通に使う分には中身が同じなので気にしてなかったのですが、mod_rewriteを使ったら、あら!違うじゃないですか。とハマッたのでメモ
以下のように、とあるCGIにアクセスした場合は
http://localhost/info.cgi
REQUEST_URI /info.cgi
SCRIPT_NAME /info.cgi
おなじ
じゃ、例えば
http://example.jp/blog/200908/01.html
といったURLを
http://example.jp/blog/article.cgi?id=20090801
と書き換えたとすると、REQUEST_URIとSCRIPT_NAMEはそれぞれ以下のようになる。
▼ブラウザから送られてきた要求のURI
$ENV{REQUEST_URI} = /blog/200908/01.html
▼CGIスクリプト名
$ENV{SCRIPT_NAME} = /blog/article.cgi
ポイントは、
REQUEST_URIはそのまま、【ブラウザから送られてきた要求のURI】
SCRIPT_NAMEは【実行されているスクリプトのパス】ですね。
はまりポイントである。
Category: 未分類