Wie wähle ich nur die Stammdomäne von $_SERVER aus[‘HTTP_REFERER’];?

Lesezeit: 2 Minuten

Ich möchte eine 404-Seite haben, die erkennen kann, ob ein Benutzer auf diese Seite gelangt ist, entweder über meine Website, über meine verkürzte URL oder über eine andere Website, und ich erstelle sie mit PHP. Ich komme langsam mit PHP klar und das ist vielleicht eine einfache Frage, aber ich bin ehrlich gesagt ziemlich müde und habe kein Koffein in meinem System, und ich möchte so schnell wie möglich alle losen Enden in meinem Portfolio binden .

Ich habe die gefunden $_SERVER['HTTP_REFERER']; Die PHP-Variable gibt mir die gesamte URL, was ein Anfang ist. Gibt es eine Möglichkeit, dass mir dies nur die Root-Domain geben kann, entweder über eine andere Variable oder eine Funktion, wobei zu berücksichtigen ist, dass einige Referrer möglicherweise http:// und einige https:// verwenden (also einfach ab dem siebten Zeichen beginnen würde nicht immer funktionieren)? Auf diese Weise kann ich die URL basierend auf zwei (oder mehr) vordefinierten Adressen abgleichen und den Inhalt produzieren, der sich auf diese Domain bezieht.

parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST)

Sehen http://php.net/manual/en/function.parse-url.php.

Beachten Sie jedoch, dass der Referer unglaublich einfach zu fälschen ist, also kaum zuverlässig.

  • Das ist wunderbar! Das funktioniert perfekt, abgesehen davon, dass ich das nicht mit 301-umgeleiteten URLs machen kann, was meiner Meinung nach Probleme mit meinem URL-Shortener verursachen kann. Egal, ich werde einen Weg finden.

    – Nathan Bunn

    29. Januar 2012 um 1:14 Uhr

  • Übrigens, wie leicht lassen sich URLs fälschen? Könnte jemand meine Domain leicht fälschen? Wie?

    – Nathan Bunn

    29. Januar 2012 um 1:15 Uhr

  • Ich sage die Referent ist leicht zu fälschen. Es sind nur willkürliche, optionale, freiwillige Daten, die im HTTP-Header der Anfrage gesendet werden. Der Client kann dort alles senden, was er will. Es gibt Browser-Plugins, die den Referrer beliebig ändern.

    – verzeihen

    29. Januar 2012 um 1:23 Uhr

  • Oooooh, sorry, danke, dass du mir das nochmal erklärt hast. Um ehrlich zu sein, mache ich mir darüber keine allzu großen Sorgen, da es sich um Daten handelt, die auf einer 404-Seite angezeigt und nicht aufgezeichnet werden, aber trotzdem danke. Das war mir nicht bewusst, also danke für den Hinweis.

    – Nathan Bunn

    29. Januar 2012 um 1:39 Uhr

http://php.net/manual/en/function.parse-url.php ist möglicherweise die beste Wahl, obwohl Sie auch einen regulären Ausdruck verwenden könnten, um das zu erreichen, wonach Sie suchen.

das sollte gehen:

 $_SERVER['SERVER_NAME']

  • Nicht wirklich eine sehr gute Option, da Sie eine Subdomain verwenden möchten potato.domain.com und du willst werden domain.com als Ergebnis wird dies fehlschlagen. Das OP hat angegeben Root-Domäne

    – Kassandra

    7. September 2016 um 5:37 Uhr


1090970cookie-checkWie wähle ich nur die Stammdomäne von $_SERVER aus[‘HTTP_REFERER’];?

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

Privacy policy