In message <m31yeu40dg.wl@edwin.mva.biglobe.ne.jp>,
`m_seki@mva.biglobe.ne.jp' wrote:
>
>
> 咳です。
>
> たまにはMLで質問しよう。
>
> サーブレットをいくつか書いています。do_GETの中で自分のURLを
> 作るには、どうしたらよいでしょう。
>
> http://hostname/mount/hoge
> =========== ここは script_name と path_info でできると
> おしえてもらいました。
> =============== こっちはどんなAPIでもらえるでしょうか?
いまのところは専用のAPIは持ってないので、
scheme = req.config[:SSLEnable] ? "https" : "http"
if req['host']
host, port = req['host'].split(":", 2)
port ||= (scheme == "https") ? "443" : "80"
else
host = req.config[:ServerName]
port = req.config[:Port]
end
uri = "#{scheme}://#{host}:#{port}"
という感じでしょうか。
でも、これではあんまりなので、HTTPRequest#absolute_uri
で Request-URI の絶対 URI を返すようにしようかと思います。
それと、リダイレクトする場合にも絶対 URI が必要なんです
が、これは HTTPResponse が送信時に Location: ヘッダを
チェックすればいいような気がするので、
HTTPResponse#set_redirect にはパスを与えれば済むようにし
ます。
CGI でスキームを得るポータブルな方法って知らないのですが、
mod_ssl がセットしてくれるメタ変数 HTTPS を WEBrick でも
提供してればいいんですかねえ。
--
ごとうゆうぞう