2011-08-05 3 views
0

私はこれをmod_jkとmod_proxyの両方で試してみて、同じ結果を得ました。このmod_rewriteのルールを使用してapache2 tomcat6 pretty urlsでmod_rewriteがユーザーセッション情報を失う - 空になるショッピングカート

が正常に動作します:

RewriteRule ^/(.*)\-blah.html$ /blah/blah/blah?blah=l2vb&party_name=$1 [R,L] 

これで問題は私が避けるために期待したいものですブラウザのアドレス行に表示されている醜い新しいURL /blah/blah/blah?blah=l2vb&party_nameです。これは、これを行う[R]フラグのようです。

RewriteRule ^/(.*)\-blah.html$ /blah/blah/blah?blah=l2vb&party_name=$1 [P,L] 

NB:

次のルールは醜いURLのみを表示し、新しいきれいなものを隠して、ここでの唯一の違いは、[]間の終わりにフラグです。

ユーザーが既にショッピングカートに何かを持っていたら、それは空になります。何らかの形で彼らの接続セッション(またはそれが何であれ、ここでは私の深みから外れています!)はゼロから始まるように再初期化されます。

[PT,L],[R,PT]などのようないくつかのフラグの組み合わせを試してみましたが、これまでのところ運がありませんでした。

答えて

0

[R]」というフラグは、ブラウザでURLを明示的に変更する302リダイレクトコードを意味します。

私はあなたがQSAフラグが必要だと思う:

RewriteRule ^/(.*)\-blah.html$ /blah/blah/blah?blah=l2vb&party_name=$1 [QSA,L] 

QSAフラグはあなたが操作するそうであるようにそう失われる既存のクエリ文字列(より正確には、新しいURLに追加します)。..を維持しますクエリ文字列。私は、セッションIDや何かがクエリ文字列を介して渡される可能性があると思うし、URLが書き換えられると失われてしまうので、サーバーは新しいセッションを作成します。そうであれば、上の方があなたの問題を解決するはずです。

Apacheドキュメント:http://httpd.apache.org/docs/current/rewrite/flags.html#flag_qsa

関連する問題