[Hiki-users 186] URI規則違反のURI名の解決について

アーカイブの一覧に戻る

小西 弘将 konis****@raax*****
2008年 8月 1日 (金) 14:31:38 JST


小西弘将と申します。

社内のローカルな情報ポストとしてHikiを利用しようと考え、常時オンライン状
態のPC(仮にh_1)にHikiを導入しました。Hikiフォルダをドキュメントルートと
し、ポート番号は8080に設定しています。
HikiおよびRubyのバージョンは以下の通りです。
Hiki 0.8.7 (2007-06-24).
Ruby 1.8.6 (2007-09-24). patch level 111.

この状態でアクセスしようとすると以下のようなメッセージが表示されます。

> bad URI(is not URI?): http://h_1:8080/ (URI::InvalidURIError)
> c:/ruby/lib/ruby/1.8/uri/common.rb:436:in `split'
> c:/ruby/lib/ruby/1.8/uri/common.rb:485:in `parse'
> C:/web/hiki/hiki/plugin.rb:86:in `cookie_path'
> C:/web/hiki/hiki/command.rb:566:in `cookie'
> C:/web/hiki/hiki/command.rb:572:in `session_cookie'
> C:/web/hiki/hiki/command.rb:74:in `initialize'
> C:/web/hiki/hiki.cgi:31:in `new'
> C:/web/hiki/hiki.cgi:31
> C:/web/hiki/hiki/storage.rb:14:in `open_db'
> C:/web/hiki/hiki.cgi:30

ポート番号を80にすると以下のようなメッセージに変わります。

> the scheme http does not accept registry part: h_1 (or bad hostname?) (URI::InvalidURIError)
> c:/ruby/lib/ruby/1.8/uri/generic.rb:195:in `initialize'
> c:/ruby/lib/ruby/1.8/uri/http.rb:78:in `initialize'
> c:/ruby/lib/ruby/1.8/uri/common.rb:488:in `new'
> c:/ruby/lib/ruby/1.8/uri/common.rb:488:in `parse'
> C:/web/hiki/hiki/plugin.rb:86:in `cookie_path'
> C:/web/hiki/hiki/command.rb:566:in `cookie'
> C:/web/hiki/hiki/command.rb:572:in `session_cookie'
> C:/web/hiki/hiki/command.rb:74:in `initialize'
> C:/web/hiki/hiki.cgi:31:in `new'
> C:/web/hiki/hiki.cgi:31
> C:/web/hiki/hiki/storage.rb:14:in `open_db'
> C:/web/hiki/hiki.cgi:30

lib/uri/common.rbの該当部分は難解すぎて私には理解不能でしたが、本来URIに
アンダースコアは許されないという解釈で正しいでしょうか?
それはそれで仕方がないので、今はPlugin.rbの該当部で期待されるアドレスに
変換するコードを挿入して、動作をさせています。

LAN環境ではアンダースコアのついた名前のPCは許されるため、今回のような事
態は他でもあり得ると思います。
とりあえずご報告まで。




Hiki-users メーリングリストの案内
アーカイブの一覧に戻る