Eek. The dir_cgi.c on the mathopd site is rather old. It should use SCRIPT_NAME, rather than PATH_INFO. I have replaced it. The new version should work ok.
Thanks, it works wonderfully now! Question, though: Why should it use SCRIPT_NAME instead of PATH_INFO? Or, I guess, what was the purpose of PATH_INFO, why did SCRIPT_NAME take over, and where can I read more about that?
I believe the story is roughly as follows. The CGI standard [1] dictates that if you have a script, say, /cgi-bin/php, then anything in the URL following that script is passed as PATH_INFO.
Now, the CGI standard was written at a time when the only CGI scripts were of the form described above, where you had a dedicated directory for scripts. This directory was mapped to a URL using ScriptAlias, or whatever directive ncsa/cern/etc used.
Today the /cgi-bin nonsense has mostly disappeared I think; nowadays scripts are put in the same directory as viewable content, so one would have just
/hello-world.php
instead of
/cgi-bin/php/hello-world.php
Now to make hello-world.php work the same one would set PATH_INFO to /hello-world.php in both instances. IIS did this, so I copied that behaviour. But it sort-of clashes with the CGI specification. Since mathopd 1.5 is the first version that claims to support CGI properly I decided to back this out. Also, apache does it this way, and by then I no longer had anything to do with IIS. :)
Hope this makes any sense.
References:
[1] http://hoohoo.ncsa.uiuc.edu/cgi/
Cheers Michiel
