あれこれ考えていると返事が遅くなってしまいました。
In message <138c85610510091052j5842b9d3u@mail.gmail.com>,
`Hiroyuki Iwatsuki <don@na.rim.or.jp>' wrote:
> これはHTTPServer.newのオプションに :DocumentRoot を与えると、自動的に / に FileHandler が
> mountされることから始まって、FileHandler#serviceでユーザディレクトリの参照が可能となります。加えてwebrick.rbを読み込むとCGIHandlerが登録され、ユーザディレクトリ以下のCGIが起動可能となります。
~username/public_html を勝手に参照するというのはあまり実用的
でもないので、デフォルトで無効になっていたほうがよさそうです
ね。この機能を丸ごと外してももよいかもしれませんが、
WEBrick::Config::FileHandler[:UserDir]のデフォルトをnilにし
ようかと考えています。
FileHandlerが*.cgiを起動するのがデフォルトの挙動としてふさわ
しくないと言うのも理解できます。しかし、(少なくとも1.8では)
今更外すことに抵抗を感じるのも事実です。まあ、FileHandlerは
そういうものであると私は考えていますが、いかがでしょうか。
ちなみに、無効にするには、
WEBrick::HTTPServlet::FileHandler.remove_handler("cgi")
WEBrick::HTTPServlet::FileHandler.remove_handler("rhtml")
などとすればよいと思います。
> # なんとなく「そんなことは既知(もしくは当たり前)なんだから自己責任だろう」と言われるような気もしてます。
現状の挙動が当り前だというのはさすがに乱暴でしょうね。
--
ごとうゆうぞう