- PR -

URIの~(チルダ)を%7Eに変換しない方法

1
投稿者投稿内容
naomichi
会議室デビュー日: 2002/07/27
投稿数: 1
お住まい・勤務地: Tokyo
投稿日時: 2002-07-27 20:29
ApacheにTomcatをアドインした状態で動かしてるのですが、
Apacheのpublic_htmlにWebコンテナをラッパーすると、セッションが維持されないという問題が起こっています。

実際には、http://xxx/~(User acount)/ でアクセスすると、自動的に~(チルダ)が%7Eに、/(スラッシュ)の後にindex.jspが補完されますが、この状態だとセッションが無効になるようです。
因みに、http://xxx/~(User acount)/index.jsp でアクセスすると、セッションは正常に動作しました。

症状の起こっているページ:
http://longhinus.dyndns.org/~local/
(リロード後もセッションIDが変動)

http://longhinus.dyndns.org/~local/index.jsp
(セッションが保持される)

環境は以下の通りです。
OS: RedHat 7.3
Server: Apache 2.0.39, Tomcat 4.0.4 (mod_jkコネクタを利用)

server.xml
<Context path="/~local" docBase="/home/local/public_html"
rossContext="false" debug="0" reloadable="true"></Context>

mod_jk.conf
JkMount /~local/* ajp13
Alias /~local "/home/local/public_html"

RFC的にはよろしくないのかもしれませんが、チルダを自動で16進に変換しないよう
設定するにはどうやればよいのでしょうか。
以上、宜しくお願いします。
Paul
ベテラン
会議室デビュー日: 2002/04/30
投稿数: 75
お住まい・勤務地: 東京
投稿日時: 2002-07-30 12:47
> RFC的にはよろしくないのかもしれませんが、チルダを自動で16進に変換しないよう
> 設定するにはどうやればよいのでしょうか。
Tomcatの実装では、当該個所にjava.net.URLEncoderを利用しているようです。
したがって、JDKのjava.net.URLEncoderのencodeメソッドで、~をエンコードしないようにソースを書き換えてビルドすれば可能だと思われます。
_________________
Paul K.Nakagome
1

スキルアップ/キャリアアップ(JOB@IT)