httpd.conf
%r
の代わりにレスポンスヘッダを使ってログファイルに値を渡す
LogFormat "(前略) \"%{X-MYQUERYSTRING}o\" (後略)" post_logformat
SetEnvIf Request_Method "POST" method_is_post
CustomLog "|/usr/local/apache/bin/rotatelogs post_log.%y%m%d 86400 540" post_logformat env=method_is_post
CGI側でレスポンスヘッダを1つ追加する
if($ENV{REQUEST_METHOD} eq 'POST'){
%vars = $cgi->Vars;
$qs = join('&', map{ join('=', $_, $vars{$_}) } keys %vars);
print 'X-MYQUERYSTRING: '.'POST '.$ENV{REQUEST_URI}.'?'.$qs.' '.$ENV{SERVER_PROTOCOL}."\n";
}
エスケープは必要だと思う