dedlfix: Domainnamen in PHP auf lokalem Rechner ermitteln

Beitrag lesen

Tach!

Was ist denn der Unterschied zwischen $_SERVER['SERVER_NAME'] und $_SERVER['HTTP_HOST']

HTTP_HOST ergibt sich aus dem Protokoll HTTP. Der CLient schickt mit, welchen Host er ansprechen möchte. Nur so kann man mehrere VHosts unter derselben IP-Adresse betreiben. Der Name wird eigentlich am Client mittels DNS in eine IP-Adresse übersetzt und gar nicht in den unteren Schichten, die für den Verbindungsaufbau zuständig sind, zum Server übertragen. Dort ist er nicht notwendig. Aber der Webserver muss VHosts trotz gleicher IP-Adresse unterscheiden können, und deshalb schickt man den Hostnamen via HTTP doch noch mit.

SERVER_NAME ist das was der Webserver draus gemacht hat. Ich hätte angenommen, dass das der VHost-Name ist, aber selbst wenn ich einen Namen nebst weiterer Aliase vergebe, stehen die Aliase darin und nicht immer wieder der Name - zumindest bei meinem Apachen.

Nimm HTTP_HOST, das ist das was der Client wollte.

dedlfix.