PHP setcookie () für Domain aber nicht Subdomains
Frage
Gibt es eine Möglichkeit, ein Cookie zu setzen, die nicht lesbar auf Sub-Domains? Mit anderen Worten, das Cookie auf domain.com
, aber nicht www.domain.com
oder xyz.domain.com
.
//this is what i'm "intending"...
setcookie($name,$value,$expires,'/','domain.com');
//however, this is how it behaves:
setcookie($name,$value,$expires,'/','.domain.com');
Die Begründung:. Ich gründe eine statische CDN auf einer Sub-Domain und will nicht die Benutzer-Session-Cookies für jedes Bild hin und her, CSS-Datei, js-Datei, etc
... muss ich zur Verwendung von www.domain.com
für meine Website zurückgreifen? Gibt es Workarounds?
Lösung
Offenbar ein Cookie mit auf "domain.com", das passt auf "* .domain.com" ist das erwartete Verhalten.
Zum Beispiel: PERSISTENTE CLIENT STATE HTTP-Cookies Zustand (etwas Hervorhebung von mir ) :
domain=DOMAIN_NAME
Wenn Sie die Cookie-Liste suchen gültige Cookies, ein Vergleich der Domain-Attribut des Cookies ist mit den Internet-Domain-Namen aus der Host, von dem die URL sein hergeholt. ...
"Leitwerk matching" Mittel dass Domain-Attribut wird abgestimmt gegen das Heck des voll qualifizierte Domänennamen des Hosts. A Domain-Attribut von „acme.com“ würde Spiel Hostnamen „anvil.acme.com“ als und "shipping.crate.acme.com" .Nur Hosts innerhalb der angegebenen Domäne einstellen kann ein Cookie für eine Domain und Domänen müssen haben mindestens zwei (2) oder drei (3) Perioden in ihnen verhindern Domänen der Form: „.com“, ".Edu" und "va.us". Domänen, die nicht innerhalb eines der sieben Sonder Top-Level-Domains unten nur aufgelistet erfordern zwei Perioden. Jede andere Domain erfordert mindestens drei. Die Sieben Spezial-Top-Level-Domains sind: "COM", "EDU", "NET", "ORG", "GOV", "MIL", und "INT".
Also, werden Sie müssen entweder:
- use "
www.domain.com
" für Ihre Website - oder verwenden Sie einen ganz anderen Domain-Namen für Ihre statischen Inhalte (wie „
.anotherdomain.com
“)- zum Beispiel, ist es das, was auf Stackoverflow getan wird: statische Inhalte aus sstatic.net serviert
Andere Tipps
Das ist der Grund, warum nicht wenig Stellen (einschließlich diesem) eine eigene Domain für die Verwendung als CDN registrieren.
Es ist nicht möglich, da die Cookie-Domain Schwanz gegen die Domain-Namen angepasst . Sie werden mit www gehen.