21 Stimmen

Wie man ein Cookie im Apache entfernt

Ich muss ein Cookie aus der HTTP-Anfrage entfernen, die an den Server übermittelt wird. Dies auf dem Client (der dieses Cookie schreibt) oder auf dem Server (der es liest) zu tun, ist keine Option. Ich habe Apache 2.0, der Anfragen zwischen Client und Server vermittelt, und hoffte, das Cookie direkt im Apache mit mod_rewrite entfernen zu können.

Meine Frage ist, gibt es eine Möglichkeit, ein bestimmtes Cookie aus der HTTP-Anfrage mit mod_rewrite zu entfernen?

Wenn es nicht möglich ist, nur die eine Cookie dann als letztes Mittel zu entfernen alle Cookies aus der Anfrage?

Ich bin offen für andere Vorschläge, wie man dies erreichen kann, wenn mod_rewrite nicht das richtige Werkzeug für diese Aufgabe ist.

31voto

Andy Punkte 8560

Apache mod_rewrite erlaubt die Manipulation von URLs, aber nicht von HTTP-Headern. mod_headers'. können Sie das tun.

Sie könnten also verwenden:

RequestHeader unset Cookie

Dadurch wird die alle Cookies aus der Anfrage. Ich bin nicht sicher, ob es möglich ist, nur ein bestimmtes Cookie mit dieser Technik zu entfernen.

Alternativ können Sie die Weitergabe von Cookies an den Client auch unterbinden:

Header unset Set-Cookie

wenn das angemessener ist.

12voto

Anthony O. Punkte 18951

Mit Apache > 2.2.4, hätten Sie verwenden können :

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

10voto

Sie können bestimmte Cookies mit den folgenden Anweisungen in Apache-Reverse-Proxy-Konfigurationen verwalten:

Um ein bestimmtes Cookie zu entfernen, können Sie verwenden:
' Header hinzufügen Set-Cookie "ANY_COOKIE='';expires='SOME_DATE_IN_PAST'; Max-Age=0; Path=COOKIE_PATH" '

Durch die Angabe eines abgelaufenen Datums teilen Sie dem Browser mit, dass das Cookie abgelaufen ist, und der Browser wird das Cookie verwerfen.

Zum Hinzufügen von Keksen können Sie verwenden:
' Header hinzufügen Set-Cookie "ANY_COOKIE='ANY_VALUE';expires='SOME_FUTURE_DATE'; Path=COOKIE_PATH" '

Achten Sie darauf, dass Sie ein zukünftiges Datum angeben. Wenn Sie kein Datum angeben, wird das Cookie als Sitzungscookie behandelt.

Versuchen Sie Folgendes, um ein bestimmtes Cookie aus einer Anfrage zu entfernen:

RequestHeader add Cookie "ANY_COOKIE='';expires='SOME_PAST_DATE'; Path=COOKIE_PATH"'

2voto

Dylan B Punkte 622

Ich verwende dies, um alle Cookies zu löschen (gut, um statische Inhalte anzubieten)

Header unset Cookie
Header unset Set-Cookie

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X