PHP erhält den Domänennamen [duplicate]

Lesezeit: 2 Minuten

Benutzer-Avatar
Francisc

Ich möchte den Domänennamen für den Ort erhalten, an dem das Skript ausgeführt wird. Wie kann das mit PHP gemacht werden? Ich sehe das $_SERVER['HTTP_HOST'] ebenso gut wie $_SERVER['SERVER_NAME'] enthalten diese Informationen. Wird diese Variable immer funktionieren und sollte ich eine über der anderen verwenden?

Vielen Dank.

  • Das beantwortet einen Teil meiner Frage zur Verwendung von SERVER_NAME gegenüber dem anderen, aber ist dies der richtige Weg, dies in PHP zu tun? (ist der andere Teil) Danke.

    – Francisc

    23. März 2011 um 11:57 Uhr

Benutzer-Avatar
Mukesh Chapagain

Eine ähnliche Frage wurde bereits in Stackoverflow gestellt.

Siehe hier: PHP $_SERVER[‘HTTP_HOST’] im Vergleich zu $_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 Load-Balancing-Software

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

  • HTTP_HOST scheint mir richtig zu sein. SERVER_NAME hat gut funktioniert, bis wir anfingen, Docker zu verwenden, und uns dann einfach “localhost” gegeben haben. Beachten Sie nur, dass HTTP_HOST Ihnen auch die Subdomain mitteilt.

    – Herbst Leonard

    15. Februar 2017 um 20:13 Uhr

Benutzer-Avatar
xzyfer

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

  • Ihr HTTP-Server gibt diese Werte an PHP weiter (ich kenne keine, die dies nicht tun)
  • Du bist nicht Zugriff auf das Skript über die Befehlszeile (CLI)

Aber wenn ich mich richtig erinnere, können diese Werte teilweise gefälscht sein, also verlässt man sich am besten nicht darauf.

Meine persönliche Vorliebe ist zu Legen Sie den Domänennamen als Umgebungsvariable fest im virtuellen Apache2-Host:

# Virtual host
setEnv DOMAIN_NAME example.com

Und lesen Sie es in PHP:

// PHP
echo getenv(DOMAIN_NAME);

Dies gilt jedoch nicht unter allen Umständen.

1351150cookie-checkPHP erhält den Domänennamen [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy