in reply to CGI queries without '?'

I've done this kind of thing using Apache's mod_rewrite. This is not suitable for handling form submissions, bit if you're using it to build links between your pages you can hide the "CGI" nature of your pages entirely. Here's an apache config example:
RewriteEngine on RewriteRule ^/foo/([0-9]+).html$ /cgi-bin/foo.cgi?id=$1 [pt]
With this code the user will only see something like: /foo/54236.html in the HTML, but it will be transformed by Apache to /cgi-bin/foo.cgi?id=54236.