2009-11-25 99 views
13

サーバーに送信されるHTTPリクエストからCookieを削除する必要があります。クライアント(このクッキーを書き込む)またはサーバー(読み取りする)上で実行することはオプションではありません。私は、クライアントとサーバーの間でリクエストを代行するApache 2.0を持っているので、mod_rewriteを使用してApacheでCookieを削除することを望んでいました。ApacheでCookieを削除する方法

私の質問は、mod_rewriteを使用してHTTPリクエストから特定のCookieを削除する方法ですか?

要求からすべてのクッキーを削除する最後の手段としてそしてちょうどクッキーを削除することはできませんか?

mod_rewriteがこのタスクに適したツールではない場合は、これを達成するための他の提案があります。

+3

あなたはMODにクッキーを設定することが可能であるCOフラグ –

答えて

19

Apache mod_rewriteでは、URLの操作は許可されますが、HTTPヘッダーの操作は許可されませんが、'mod_headers'はそれを許可します。

だから、あなたが使用できます。

RequestHeader unset Cookie 

はこの要求から すべてのクッキーを削除します。この手法を使用して特定のCookieを削除することが可能かどうかはわかりません。また

、あなたが使用してクライアントに戻されているクッキーを停止することができます:それはより適切かどう

Header unset Set-Cookie 

を。あなたが使用することができます任意の特定のCookieを削除するには

::Apacheのリバースプロキシの設定に次のステートメントを使用して、特定のクッキーを管理することができます

+0

を使用してのmod_rewriteを使ってクッキーを書き換えることができます(静的なコンテンツを提供して良いです) \_リライト。しかし、限り、私はクライアントへの応答のために知っている。 – Gumbo

+0

FTWをコピー/ペーストします。 –

7


『'ヘッダーのSet-Cookie「ANY_COOKIEを=追加』; = 『SOME_DATE_IN_PAST』を満了しました; Max-Age = 0; Path = COOKIE_PATH " '

過去の日付を指定すると、Cookieの有効期限が切れたことをブラウザに通知し、ブラウザはCookieを破棄します。

あなたが使用できるすべてのクッキーを追加するには:
' "ANY_VALUE '; =有効期限が切れる 'SOME_FUTURE_DATEを';パス= COOKIE_PATHヘッダのSet-Cookie ANY_COOKIE =" を' 追加'

はあなたには、いくつかを指定することを確認してください将来の日付。日付を指定しない場合、クッキーはセッションクッキーとして扱われます。

要求から特定のCookieを削除するには、以下の使用してみてください:

'RequestHeaderクッキーを追加 "ANY_COOKIE = '';有効期限が切れる= 'SOME_PAST_DATE';パス= COOKIE_PATH"' アパッチ> 2.2で

+1

要求から特定のCookieを削除するには、以下を使用してみてください:**「RequestHeaderクッキー追加 『ANY_COOKIEを=『』; =『SOME_PAST_DATE』を満了し、パス= COOKIE_PATH』私はRequestHeaderはクッキーを追加すると思う」** –

+0

すると、実際にあなたのための3枚のクッキーを作成します。 。 (ANY_COOKIE、期限切れ、パス)があります。 –

6

。4、you could have used

RequestHeader edit Cookie "^(.*?)ANY_COOKIE=.*?;(.*)$" $1$2 
+4

これは、 'RequestHeaderはクッキーを編集します。^(。*?)ssosession =。*?(?:$ |;)(。*)$" $ 1 $ 2'はヘッダーが ';'で終わっていなくても機能します。 – Simon

+0

'RequestHeader edit cookie ANY_COOKIE = [^;] *?($ |;)" "'でも動作するはずです:接頭辞/接尾辞の部分をキャプチャして戻す必要はありません。 – Coke

0

私が未設定のためにこれを使用するすべてのクッキー

Header unset Cookie 
Header unset Set-Cookie 
関連する問題