it-swarm.com.de

PHP Domain Name holen

Mögliches Duplikat:
HTTP_Host vs. SERVER_NAME

Hallo,

Ich möchte den Domainnamen erhalten, unter dem das Skript ausgeführt wird. Wie geht das mit PHP? Ich sehe das $_SERVER['HTTP_Host'] ebenso gut wie $_SERVER['SERVER_NAME'] enthalten diese Informationen. Funktioniert diese Variable immer und sollte ich sie übereinander verwenden?

Vielen Dank.

78
Francisc

Eine ähnliche Frage wurde bereits in stackoverflow gestellt.

Siehe hier: PHP $ _SERVER ['HTTP_Host'] vs. $ _SERVER ['SERVER_NAME'], verstehe ich die Manpages richtig?

Siehe auch diesen Artikel: http://shiflett.org/blog/2006/mar/server-name-versus-http-Host

Es wird empfohlen, HTTP_Host zu verwenden und nur dann auf SERVER_NAME zurückzugreifen, wenn HTTP_Host nicht festgelegt wurde. Er sagte, dass SERVER_NAME auf dem Server aus verschiedenen Gründen unzuverlässig sein könnte, darunter:

  • keine DNS-Unterstützung
  • falsch konfiguriert
  • hinter Lastausgleichs-Software

Quelle : http://discussion.dreamhost.com/thread-4388.html =

82

Um Ihre Frage zu beantworten, sollten diese funktionieren, solange:

  • Ihr HTTP-Server übergibt diese Werte an PHP (Ich kenne keine, die dies nicht tun)
  • Sie greifen nicht über die Befehlszeile (CLI) auf das Skript zu

Aber wenn ich mich richtig erinnere, können diese Werte bis zu einem gewissen Grad gefälscht sein, daher ist es am besten, sich nicht auf sie zu verlassen.

Ich persönlich bevorzuge den Domainnamen als Umgebungsvariable festlegen im virtuellen Apache2-Host:

# Virtual Host
setEnv DOMAIN_NAME example.com

Und in PHP lesen :

// PHP
echo getenv(DOMAIN_NAME);

Dies gilt jedoch nicht unter allen Umständen.

7
xzyfer