[6] CGI のメタ変数 SCRIPT_NAME
は、
path の前半の CGIスクリプトを識別する部分を表します。
SCRIPT_NAME = "" | ( "/" path )
[9] SCRIPT_NAME
はCGIスクリプトを識別する URL
の path (パーセント符号化されていないもの) を設定しなければなりません。 >>5
これの後に PATH_INFO
を連結し (てパーセント符号化し) たものが、
CGIスクリプトによって処理される対象となっている資源を表す
Script-URI を構成します。 PATH_INFO
が存在しない場合、path
全体が SCRIPT_NAME
となります。
SCRIPT_NAME
かは実装定義の方法により実装と設定次第で決まります。
しかし SCRIPT_NAME
と PATH_INFO
で重複する部分はありません >>5。[23] HTTP::Request::AsCGI
は、常に PATH_INFO
を要求URLの
path 全体とし、 SCRIPT_NAME
は
/
とします。
[11] CGI では URL とは違って先頭の /
が path の一部では無いとされています。
path がNULLなら /
は省略して良いこととなっています。 >>5
[12] >>11 の規定の意図するところはよくわかりませんが、 path 全体が PATH_INFO
としてCGIスクリプトに与えられる場合、 SCRIPT_NAME
に /
のような値を設定すると /
がだぶってしまい、 >>10 の重複しないという性質に反してしまいます。
SCRIPT_NAME
をNULLにすればこの不整合は回避できます。
[14] NULL の場合であっても、メタ変数は設定しなければなりません >>5。
[17] WSGI とその派生仕様は、「根」を表すために空文字列にしても良いと明記しています >>18, >>19, >>20, >>21。
SCRIPT_NAME
が空文字列なら PATH_INFO
は /
であるべきであるSCRIPT_NAME
は /
になるべきではなく、空文字列になるべきである... と規定しています >>21。
[1] [NCSA] いわく:
A virtual path to the script being executed, used for self-referencing URLs.
実行されるスクリプトへの仮想経路で、 自己参照 URL に使われます。
[2] [COAR 03] いわく:
The SCRIPT_NAME metavariable is set to a URL path that could identify the CGI script (rather than the script's output). The syntax and semantics are identical to a decoded HTTP URL 'path' token (see RFC 2396 [4]).
SCRIPT_NAME
メタ変数は、
CGIスクリプト (スクリプトの出力ではなく。)
を識別することができる
URL 経路が設定されます。
構文及び意味は HTTP URL
の path
字句を復号したものと同一です。
- SCRIPT_NAME = "" | ( "/" [ path ] )
The SCRIPT_NAME string is some leading part of the <path> component of the Script-URI derived in some implementation defined manner. No PATH_INFO or QUERY_STRING segments (see sections 6.1.6 and 6.1.8) are included in the SCRIPT_NAME value.
Servers MUST provide this metavariable to scripts.
SCRIPT_NAME
文字列は、実装定義の方法で
Script-URI の <path>
部品の最初のほうから取り出したものです。
PATH_INFO
も QUERY_STRING
も、 SCRIPT_NAME
値には含めません。
サーバーはこのメタ変数をスクリプトに提供しなければなりません (MUST)。
[3] >>2 にあるように、この値は URI のものを復号した値であることに注意が必要です。ですから、必要に応じて再符号化しないと、 URI は作れません。
path
はPATH_INFO
の定義と同じです。 つまり、実質的に、/
ではじまる任意の文字列と言えます。