You are viewing a plain text version of this content. The canonical link for it is here.
Posted to docs@httpd.apache.org by "William A. Rowe, Jr." <wr...@rowe-clan.net> on 2001/09/01 08:53:17 UTC

Win32 (OS2) /cgi-bin/ exe and bat experiment and observations

I was playing with the script-aliased container.  I've removed two odder
aspects of the server behavior.  One, on Win32/OS2 mod_cgi would look for
a file of the requested filename + '.exe' tacked on.  That was (as the 
note said) somewhat bogus, and we have a feature to allow it, so I recently 
removed it.

The second, we can't multimatch just because we have a handler.  If they
don't ask for a given document (script.pl) we shouldn't serve for the handler
(cgi-script).  Only negotiation variables should be wildcard matched.
Of course, we deal with script.pl.en and script.pl.fr for script.pl just fine 
today, those are language (content) negotated.

So I experimented with the following to prevent the "Do you want to download
this Program" message in IE, when requesting a script (thirtytwo.exe).
I wanted to grab the script as a multimatch, so here's what I tried;

<Directory "/Apache2/cgi-bin">
    AllowOverride None
    Options Multiviews    <<< note multiviews
    Order allow,deny
    Allow from all
    AddType text/plain .exe  <<< serve up as wildcards
    AddType text/plain .bat
</Directory>

Here's what thirtytwo.exe (an html cgi) serves up.

HEAD /cgi-bin/thirtytwo HTTP/1.0

HTTP/1.1 200 OK
Date: Sat, 01 Sep 2001 06:25:31 GMT
Server: Apache/2.0.26-dev (Win32)
Content-Location: thirtytwo.exe
TCN: choice
Vary: negotiate
Connection: close
Content-Type: text/html; charset=ISO-8859-1

So the test essentially worked.  It also sends back text/plain as the
default, until the script itself sets the headers via util_script.c
parsing.  The text/plain .bat file worked as well.

Of course, docs/cgi-examples/test-cgi.bat offers another example of using the 
bogus mime header format to tell IE that text/plain content is to be shown, 
not run.  But notice that even that *must* strip off the extention.

So this is a rather cool option, I believe.  However, it doesn't quite work
at this moment, since the redirect/subreq mechanisms all strip of the query
args and POST stuff :(  Need to finish thinking through that aspect.

Trying the same with the 16 bit .exe, I get this 500 response

couldn't create child process: 22505: C:/Apache2/cgi-bin/SIXTEEN.EXE  :(

So we are obviously not dealing yet with older 16 bit exe's in apr.  This
may following with the Win9x port in general and cgi's (Win9x .bat files are
run by the *16* bit command shell!)

Just two cents for the night.  Need to get this documented - I'll flag my own
message to follow up, and take care of it within two weeks or so if nobody else 
on docs beats me to it ;)  I'll start patching next weekend - this is my weekend
to play CATCHUP (and I'm not talking about bugs)!

Bill



---------------------------------------------------------------------
To unsubscribe, e-mail: apache-docs-unsubscribe@apache.org
For additional commands, e-mail: apache-docs-help@apache.org