wahsaga: mod_rewrite und Cookies (und div. Verständnisfragen)

Beitrag lesen

hi,

Ich will gerade herausfinden, ob der Client Cookies akzeptiert oder nicht. Aber so wie es aussieht, kommt man nicht drumherum, von einer Seite aus einen neuen Request zu erzeugen (z.B. mit header("Location: http://$host$uri");), um zu prüfen, ob ein  Cookie akzeptiert wurde oder nicht.

Nein, da hast du den Kern meiner Aussage nicht verstanden.
Wenn du ein mal überprüfst, ob du vom Client einen Cookie geschickt bekommst, muss das nicht heißen, dass das beim nächsten Request auch noch der Fall ist - der Benutzer kann es ja zwischendurch deaktivieren.
Zugegeben, das dürfte selten vorkommen - aber es _kann_ eben vorkommen.

Der Cookie müsste ja erst mal zum Client gelangen, um von diesem beim _nächsten_ Request wieder mitgeliefert zu werden.

Nein. Innerhalb der mod_rewrite Umgebung existiert der Cookie ja wie eine normale Variable sobald er einmal gesetzt ist.

Ist das eine Vermutung, oder irgendwo beschrieben?

Also müsste er auch (schon) verfügbar sein. Und zwar unabhängig davon, ob er _später_ vom Client akzeptiert wird oder nicht.

M.E. sagst du mod_rewrite, dass es in der Antwort auf den aktuellen Request einen Cookie-Header mitschicken soll.
Dass es deshalb so tut, als ob der Cookie schon mit dem aktuellen Request vom Client übermittelt worden wäre, bezweifle ich stark.

[Query-String] Wenn du ihn abschneidest, sind die Daten damit verloren. Der Client schickt seinen nächsten Request ohne sie.

Hier kommen wieder die Umgebungsvariablen ins Spiel. Meine Idee war ja die, den Querystring in eine $_ENV Variable zu packen. Somit könnte ich ihn in der Adresszeile "abschneiden" _ohne_ die Werte zu verlieren. Nur leider kommen die Variablen/ -werte ja gar nicht in meiner index.php an. :-(

Die Umgebungsvariablen existieren nur so lange, wie die Abarbeitung des aktuellen Requests andauert. Lässt du durch einen Redirect einen neuen Request aus, sind sie wieder futsch.
Und wenn du keinen Redirect auslöst, brauchst du die Daten nicht in eine weitere Umgebungsvariable zu stecken - dann reicht das Flag [QSA] vollkommen aus, um sie dem per interner Umschreibung aufgerufenen Script so zur Verfügung zu stellen, als wäre es direkt mit diesem Query-String aufgerufen worden.

BTW: Ich habe ja durchaus vor, deinen Ratschlag bezüglich der Performance zu berücksichtigen, und die ganze Geschichte direkt in den VirtualHost Abschnitt zu packen. Aber irgendetwas läuft da anders, als wenn die Rules in der htaccess stehen.

Was sagt das Rewrite Log dazu?

gruß,
wahsaga

--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }