Microsoft-IIS $B>e$G(B cgi.rb $B$,%l%9%]%s%99T$r#2=E$K=P

e$B=i$a$F$NEj9F$G$9!#$_$d$5$+e(B
e$B$H?=$7$^$9!#$h$m$7$/$*4j$$$$$?$7$^$9!#e(B

e$BE:IU%i%$%V%i%j$Ne(B cgi.rb e$B$K$D$$$F$J$N$G$9$,!"$3$l$re(B
Microsoft-IIS
e$B>e$G;H$&$H!“e(BHTTP
e$B$N%l%9%]%s%99T$,#2=E$K=PNO$5$l$F$7$^$$$^$9”-!#e(B

Last-Modified: Wed, 28 Feb 2007 04:54:36 GMT
Pragma: no-cache
Cache-Control: no-cache

e$B860x$O!"e(Bcgi.rb e$B$Ne(B 559e$B9TL$G!“e(BSERVER_SOFTWARE e$B$,e(B
Microsoft-IIS e$B$N>l9g$Oe(B
e$BL5>r7o$K$=$N%9%/%j%W%H$,e(B nph
e$B%9%/%j%W%H$G$”$k$HH=CG$7$F$$$k$?$a$G!“e(B
cgi.rb e$B$,=PNO$7$?%l%9%]%s%99T$He(B Web
e$B%5!<%P$,=PNO$7$?%l%9%]%s%99T$NN>J}$,e(B
e$B4^$^$l$F$7$^$C$F$$$k$3$H$J$N$G$9$,!”;d$,D4$Y$?8B$j$G$O!“e(BIIS/5.0
(Windows2000e$BIUB0e(B) e$B0J9_$Ne(B IIS
e$B$G$O$3$&$$$C$?FCJL07$$$OA4$/I,MW$”$j$^$;$s!#e(B

e$B$3$Ne(B ruby-dev e$B$N2a5n%m%0$r8+$k$H!"$=$NItJ,$Oe(B Perl e$B$Ne(B
CGI.pm e$B$r;29M$K$7$Fe(B
e$B=q$$$?$h$&$J$d$j$H$j$,$"$C$?$N$G$9$,!“8=:_$N%P!<%8%g%s$Ne(B CGI.pm
e$B$r8+$k$He(B
IISe$B$rFCJL07$$$7$F$$$k2U=j$Oe(B “This no longer seems to be necessary”
e$B$H$$$&e(B
e$B%3%a%s%H$,$D$1$i$l$F%3%a%s%H%”%&%H$5$l$F$$$^$9!#$J$N$G!“e(Bcgi.rb
e$B$G$be(B
e$B$3$NItJ,$O%3%a%s%H%”%&%H$J$I$r$9$Y$-$@$H;W$$$^$9!#e(B

e$B%V%i%&%6$J$I$G$Oe(B HTTP
e$B$N%l%9%]%s%99T$,#2=E$K=PNO$5$l$F$bFq$J$/I=<($5$l$ke(B
e$B$h$&$G$9$,!“e(Bproxy e$B$N0lIt$J$I$O$3$N$h$&$Je(B HTTP
e$B%X%C%@$r5qH]$7$F$7$^$&>l9g$,e(B
e$B$”$k$h$&$G$9!#e(B

e$B$_$d$5$+e(B e$B$G$9!#%Q%C%A$rE:IU$9$k$N$rK:$l$^$7$?!#e(B
e$B;d$O$3$s$J$U$&$KJQ99$7$F;H$C$F$$$^$9!#e(B

— ruby/lib/ruby/1.8/cgi.rb.bak Fri Mar 2 14:52:33 2007
+++ ruby/lib/ruby/1.8/cgi.rb Fri Mar 2 14:53:57 2007
@@ -556,7 +556,7 @@
end

 options.delete("nph") if defined?(MOD_RUBY)
  • if options.delete(“nph”) or
    /IIS/n.match(env_table[‘SERVER_SOFTWARE’])
  • if options.delete(“nph”) # or
    /IIS/n.match(env_table[‘SERVER_SOFTWARE’])
    buf += (env_table[“SERVER_PROTOCOL”] or “HTTP/1.0”) + " " +
    (HTTP_STATUS[options[“status”]] or options[“status”] or
    “200 OK”) +
    EOL +

e$B$J$+$@$G$9!#e(B

At Mon, 12 Mar 2007 13:50:35 +0900,
MIYASAKA Masaru wrote in [ruby-dev:30538]:

  • if options.delete(“nph”) # or /IIS/n.match(env_table[‘SERVER_SOFTWARE’])
    IIS/5.0e$B0J9_$,e(BOKe$B$H$$$&$3$H$G$"$l$P$3$s$J46$8$G$7$g$&$+!#e(B

if options.delete(“nph”) or
(/IIS/(\d+)/n.match(env_table[‘SERVER_SOFTWARE’]) and $1.to_i <
4)

At Mon, 12 Mar 2007 16:07:24 +0900,
MIYASAKA Masaru wrote:

IIS/5.0以降がOKということであればこんな感じでしょうか。

if options.delete(“nph”) or
(/IIS/(\d+)/n.match(env_table[‘SERVER_SOFTWARE’]) and $1.to_i < 4)

おお、いいと思います、これ。ただ、最後のところは
$1.to_i < 5 もしくは $1.to_i <= 4 が正しいと思います。

 Perl の CGI.pm を確認しました。入れましょう。


/
/__ __ Akinori.org / MUSHA.org
/ ) ) ) ) / FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp

“Different eyes see different things,
Different hearts beat on different strings –
But there are times for you and me when all such things agree”

e$B$_$d$5$+e(B e$B$H?=$7$^$9!#$3$s$K$A$O!#e(B

IIS/5.0e$B0J9_$,e(BOKe$B$H$$$&$3$H$G$"$l$P$3$s$J46$8$G$7$g$&$+!#e(B

if options.delete(“nph”) or
(/IIS/(\d+)/n.match(env_table[‘SERVER_SOFTWARE’]) and $1.to_i < 4)

e$B$$!"$$$$$H;W$$$^$9!"$3$l!#$?$@!":G8e$N$H$3$m$Oe(B
$1.to_i < 5 e$B$b$7$/$Oe(B $1.to_i <= 4 e$B$,@5$7$$$H;W$$$^$9!#e(B