$ _SERVER ['HTTP_HOST'] enthält auch die Portnummer = /

8

Ich weiß nicht, vielleicht ist es ein Fehler.

Ich habe 2 virutalhosts auf meinem Server.

virtualhost1.com virtualhost2.com

wenn ich virtualhost1.com mit Port 80 (virtualhost1.com:80) öffne

%Vor%

aber wenn ich virtualhost2.com: 80

öffne %Vor%

Kann ich wissen warum?

    
dynamic 21.12.2010, 23:11
quelle

2 Antworten

16

Der Wert von $_SERVER['HTTP_HOST'] wird direkt aus dem Header Host: HTTP-Anfrage übernommen. Es scheint, dass der anfragende Client es auf diese Weise füllt.

Ich schlage vor, stattdessen $_SERVER['SERVER_NAME'] zu verwenden, da der Wert in der Konfiguration des virtuellen Hosts festgelegt wird. Wie Flimm jedoch unten feststellt, kann selbst die Zuverlässigkeit von SERVER_NAME immer noch von der Serverkonfiguration abhängen (siehe diese Antwort für weitere Informationen dazu).

    
webbiedave 21.12.2010, 23:21
quelle
1

Folgende Funktion gibt immer einen echten Host (user typed host) ohne Port zurück und es ist fast zuverlässig:

%Vor%     
MSS 20.05.2016 13:17
quelle