4.4.9 パス情報指定時の注意事項
リクエストURLに,CGIプログラムに渡すパス情報が指定された場合,そのパス情報を環境変数PATH_INFOに,パス情報をファイルシステム上のパスに変換した値を環境変数PATH_TRANSLATEDに設定します。パス情報をファイルシステム上のパスに変換する際には,DocumentRootディレクティブに指定されたパスを基点とします。パス情報に対し,Aliasディレクティブなどで別名を指定している場合は,その指定に従って変換します。
Webサーバの設定によって,環境変数PATH_TRANSLATEDに設定されたパスへのアクセスを許可していない場合には,エラーログにアクセス拒否のメッセージを出力します。このメッセージを出力した場合でも,WebサーバはCGIプログラムを実行し,リクエスト処理を続行します。この際,環境変数PATH_TRANSLATEDもCGIプログラムに渡されます。
- (例)ドキュメントルートが "C:/Program Files/Hitachi/Cosminexus/httpsd",Webブラウザからの要求が "http://www.example.com/cgi-bin/test-cgi.pl/ABC"(CGIプログラム"test-cgi.pl"を実行するリクエストに,パス情報として "/ABC" を付加)の場合の,エラーログ出力例を次に示します。
[Thu Apr 02 15:33:10 2020] [error] [pid 11111:tid 12345] [client 192.168.1.1:45678] AH01797: client denied by server configuration: C:/Program Files/Hitachi/Cosminexus/httpsd/ABC