Archive for 8 月 30th, 2009

日曜日, 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: 未分類  | 2 Comments