$_SERVER['SERVER_NAME'] als Weiche, für das richtige Ausliefern der Daten
Michael
- php
- webserver
Mehrere URLs zeigen auf das gleiches Verzeichnis.
Um die richtigen Daten auszuliefern, muss ich wissen welche Domain aufgerufen wurde.
Meine Idee ist es die Variable $_SERVER['SERVER_NAME'] zu nehmen.
Je nach Inhalt den jeweiligen Code auszugeben.
Gibt es da Probleme die Auftauchen könnten?
Michael
PS: Sorry für meine Fragen quer durch den Gemüsegarten
Um die richtigen Daten auszuliefern, muss ich wissen welche Domain aufgerufen wurde.
Es kann, besser wird, mit Deinem Ansinnen Probleme geben.
Nämlich dann, wenn der Hoster oder ein Admin den Kasten auf PHP.net gelesen hat,
Hinweis: Unter Apache 2 müssen UseCanonicalName = On und ServerName gesetzt werden. Ansonsten reflektiert dieser Wert den Hostnamen, der vom Client gesendet wurde und vorgetäuscht werden kann. Es ist nicht sicher, sich in einem sicherheitsabhängigen Umfeld auf diesen Wert zu verlassen.
und also die Einstellungen aus der ersten Zeile trifft. Dann bekommst Du z.B. foo.example.com
geliefert, wenn der ServerAlias bar.example.com
„requestet“ wurde.
Was Du willst ist vermutlich $_SERVER['HTTP_HOST']
. Das ist stets der mit dem HTTP-Protokoll gelieferte Hostname, also der Servername aus dem Request, Deinen Worten nach, was Du suchst.
Im Übrigen kommen die Inhalte von $_SERVER, wie der Name auch sagt, eigentlich vom Server, das gilt auch für $_SERVER['HTTP_HOST']
Hinweis: $_SERVER['HTTP_HOST']
steht nicht wirklich in der Doc, Du musst das also von Server zu Server testen.
PS: Sorry für meine Fragen quer durch den Gemüsegarten
Mir gefällt das gerade. Und das ist beim Thema notwendig so, eben weil gerade da Alles mit Allem zu tun.
Hallo Raketenwilli,
Du meinst diesen Kasten?
Hinweis: Unter Apache 2 müssen UseCanonicalName = On und
ServerName gesetzt werden. Ansonsten reflektiert dieser Wert den
Hostnamen, der vom Client gesendet wurde und vorgetäuscht werden
kann. Es ist nicht sicher, sich in einem sicherheitsabhängigen
Umfeld auf diesen Wert zu verlassen.
Aber was passiert denn, wenn ich mehrere Virtual Hosts im Apache definiere und die alle auf die gleiche Codebasis loslasse? Führt der canonical name dann dazu, dass für alle der gleiche SERVER_HOST gesetzt wird? Ich bin hier von keinerlei Ahnung belastet.
Der Sinn von UseCanonicalName war aber doch, ein spoofing des Hostname-Headers durch böse Clients zu vermeiden, d.h. Aufruf von site1.example.com/dings.html und im hostname Header steht site1.example.com. D.h. man braucht eine Lösung, die vom hostname Header unabhängig ist, find ich.
Rolf
Ja. Den.
Hinweis: Unter Apache 2 müssen UseCanonicalName = On und
ServerName gesetzt werden. Ansonsten reflektiert dieser Wert den
Hostnamen, der vom Client gesendet wurde und vorgetäuscht werden
kann. Es ist nicht sicher, sich in einem sicherheitsabhängigen
Umfeld auf diesen Wert zu verlassen.
Aber was passiert denn, wenn ich mehrere Virtual Hosts im Apache definiere und die alle auf die gleiche Codebasis loslasse? Führt der canonical name dann dazu, dass für alle der gleiche SERVER_HOST gesetzt wird?
ServerName
konfiguriert hast, erscheint mit den oben empfohlenen Erstellungen genau der als $_SERVER['SERVER_NAME']
konfigurierte.ServerAlias
konfiguriert, dann erscheint (nur) mit den oben empfohlenen Erstellungen beim Befragen von $_SERVER['SERVER_NAME']
ebenfalls das, was als ServerName
konfiguriert wurde, beim Befragen von $_SERVER['HTTP_HOST']
der „antelefonierte Hostname“.ServerName
für den _default_host konfigurierte Name.D.h. man braucht eine Lösung, die vom hostname Header unabhängig ist, find ich.
Sven will (aus nachvollziehbaren Gründen) das Gegenteil, er will ja gerade in Abhängigkeit vom Host
aus dem HTTP-Request-Header antworten. Zitat: „als Weiche, für das richtige Ausliefern der Daten“
Hallo,
Sven will
nenn ihn Theo, wie TO = Thread opener…
Gruß
Kalk
Hallo,
Sven will
Ok. Michael.
nenn ihn Theo, wie TO = Thread opener…
Namen sind Schall und Rauch. Titel nur Gehupe.
Im Ernst: Bei dem, was darzustellen war, ist auf Grund der sich kreuzenden Abhängigkeiten und resultierenden logischen Fallen einfach nicht mehr genug Aufmerksamkeit für den Name übrig geblieben. Michael möge also nicht beleidigt sein.