nginx fastcgi で PATH_INFO を取得する

fastcgi などを設定した際に location . \.cgi$ と設定すると、/index.cgi/foo/bar などのURLに対応できないのでやった。

  • nginx.conf
location ~ \.cgi($|/) {
  include                           fastcgi_params;
  fastcgi_pass                      127.0.0.1:8999;
  fastcgi_index                     index.cgi;
  fastcgi_split_path_info           ^(.+\.cgi)(/.*)$;
  fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
  fastcgi_param  PATH_INFO          $fastcgi_path_info;
  fastcgi_param  PATH_TRANSLATED    $document_root$fastcgi_path_info;
}