mod_rewrite でセッションが切れる?

 結局あまかい完成しなかったな……とゆーのも、 mod_rewrite を通すとセッションが切れちゃう、ってゆーのを解決しようとしてて……。
 Struts だと /apps/Amakai.do みたいなパスになって格好悪いから mod_rewrite で隠してるんだけど、その際になぜかセッションが切れる(汗)。
 POST する際に、 /apps/AmakaiFrom.do から POST して /apps/AmakaiTo.do に行って、さらにそこから mod_rewrite の RewriteRule に書かれてるパス、たとえば /Amakai/amakaiTo にリダイレクトさせてその中で再度 /apps/AmakaiTo.do にとばせてここで処理する、ってしてます。詳しくはこの前の記事参照。
 ところがこの RewriteRule で飛ぶ時にセッションが切れちゃうらしく、 getId() で返ってくるセッションIDが変わってる……当然セッションも残らないとゆー。どうしたもんかな。


 一応暫定対策として、 Action クラスで

    public ActionForward execute
        ( ActionMapping mapping
        , ActionForm form
        , HttpServletRequest request
        , HttpServletResponse response
        )
        throws Exception
    {
//...
    url = "/Amakai/search/" + session.getId() + "?is_redirect=true&encoding=UTF-8&query=fate&searchindex=Books";
    response.sendRedirect( url );

    }

 といった URL を作ってリダイレクト、それを

RewriteRule ^/Amakai/search/(.*)$ /webapps-amakai/Search.do;jsessionid=$1?is_redirect=true&encoding=UTF-8&%{QUERY_STRING} [P,L]

 という形で付け直す、っていうのができるのは確認しました。ただ、セッションIDが URL に残っちゃうのがなぁ。まぁ Amazon とかもバリバリ出してるっぽいけど(爆)。
 これ以外の方法としては、クッキーを使うとかかなぁ……逆に、セッションIDを渡していく方法ならクッキーを使わずにできるってゆーメリットはあるんだよなぁ。


 まぁそんな問題にはまってて、今日はあんま進まなかった(汗)。とりあえず明日は他の更新をして、来週の水曜までくらいには目処付けたいな……。