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

Beitrag lesen

hi,

Hmm, das verstehe ich nicht ganz. Ich dachte gerade darin besteht der wesentliche Vorteil von Cookies, dass sie solange sie gültig (not expired) sind, immer mitgesendet werden (im Gegensatz zu GET-Parametern, die jedesmal manuell angehängt werden müssen)?

Ja, wenn der Nutzer es seinem Browser erlaubt.

Wie stelle ich denn sicher, dass das Cookie bei jedem Request mitgesendet wird?

Als Nutzer: Stelle deinen Browser entsprechend ein, bzw. verbiete es ihm nicht.
Als Betreiber des Scriptes: Hoffe.

Und umleiten muss ich eigentlich immer, da ein Request ja typischerweise so aussieht: http://sub.example.de/ein-artikel und intern weitergereicht wird an: http://sub.example.de/index.php?page=ein-artikel

Dafür machst du doch aber keinen externen Redirect?
Sonst würde in der Adresszeile meines Browser ja dann
http://sub.example.de/index.php?page=ein-artikel
stehen.

Ja. Also ist es richtig, dass jeder Redirect ein neuer Request ist, bei dem alles wieder von vorne durchgegangen wird!?

Ja.

Wenn ich bspw. in einer Rule die folgende Umgebungsvariable setze: [E=CA:yes], dann sollte ich sie doch eigentlich per: RewriteCond %{ENV:CA} ^yes$ abfragen können?

Ja.

Analog bei den Cookies: RewriteCond %{HTTP_COOKIE} ^acceptCookies=yes$ ,bzw. RewriteCond %{CO:acceptCookies} ^yes$. Funktioniert aber nicht.

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

Also da ja alle meine Requests auf die index.php umgeleitet werden, ich teste das folgendermaßen:

print_r($_ENV);


> Da tauchen auch diverse Variablen auf, nur keine, die ich per mod\_rewrite Flag gesetzt habe (bspw. per: [E=CA:yes]).  
  
Safe Mode aktiviert?  
Dann [safe_mode_allowed_env_vars](http://www.php.net/manual/en/features.safe-mode.php#ini.safe-mode-allowed-env-vars) berücksichtigen.  
  

> Noch eine neue Frage: Gibt es eigentlich eine Möglichkeit, einen evt. vorhandenen Querystring in der Adresszeile "abzuschneiden"\_und\_trotzdem intern (index.php) weiterzuverarbeiten? Bisher gehe ich davon aus, dass das nicht möglich ist. Denn eine Änderung in der Adresszeile kann ich doch nur durch einen Redirect erreichen.  
  
Ja.  
  

> Und entweder schneide ich den Querystring dabei ab, oder ich hänge ihn per QSA-Flag wieder an. Richtig?  
  
Wenn du ihn abschneidest, sind die Daten damit verloren. Der Client schickt seinen nächsten Request ohne sie.  
  
gruß,  
wahsaga  
  

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