Refererübergabe bei Verwendung von header()?
Martin
- php
Hallo,
um zu sehen über welchen Link meine Seite verlassen wird, verlinke ich über folgende URL:
http://www.mediage.de/form/redirect.php?url=http://clowns.mediage.de
Die Datei redirect.php bekommt den Ziellink in der Variablen $url übergeben und führt dann folgenden header aus:
header ("Location: $url");
exit;
Das klappt auch prima, nur wird dabei anscheinend kein Referer übergeben. Dies hätte ich aber gerne, weil einige Seiten auf die ich verlinke einen Gegenlink entsprechend der Anzahl von eingehenden Besucher platzieren.
Sollte mit header() kein Referer übergeben werden, wie kann ich dennoch über diese Methode der Zielseite "klar machen" dass der Besucher von meiner Seite kommt? Ich hatte dies zwar bisher über einen Meta-Refresh, aber das klappt nicht so gut wie mit dem header.
Wird mit header() der Referer übergeben, was mache ich erstens falsch und zweitens was wird als Referer übergeben? Die Seite redirect.php, oder die Seite welche den redirect.php?url=...-Link enthält?
Danke Martin
Hallo auch,
Das klappt auch prima, nur wird dabei anscheinend kein Referer übergeben. Dies hätte ich aber gerne, weil einige Seiten auf die ich verlinke einen Gegenlink entsprechend der Anzahl von eingehenden Besucher platzieren.
An "header" kann die Sache mit dem Referrer nicht liegen, denn der Referrer (oder sein Fehlen) ist ausschließlich Sache des Browsers - und natürlich der zwischen Browser und Webserver liegenden Proxys, wie z.B. Webwasher, der den Referrer wegfiltern kann.
<spekulation> Aber natürlich kann es sein, daß der Browser bei "Location: xxx" grundsätzlich keinen Referrer mitschickt, wenn er zur neuen Location geht.</spekulation>
<idee> Versuch's mal mit den HTTP-Statuscodes 301 oder 302 (Moved temporarily oder permanently). Dann ist der Browser ebenfalls für das Ansurfen der neuen Seite zuständig, aber vielleicht schickt er dann einen Referrer. Oder du nutzt den bekannten Meta-Refresh (wobei ich mir nicht so recht vorstellen kann, warum der NICHT funktioniern soll - erkläre!). </idee>
- Sven Rautenberg
<spekulation> Aber natürlich kann es sein, daß der Browser bei "Location: xxx" grundsätzlich keinen Referrer mitschickt, wenn er zur neuen Location geht.</spekulation>
Nun ich dachte auch zuerst es läge an der verwendeten Firewall, da man dort die Refererübergabe unterbinden kann (was bei mir auch eingestellt war). Aber Unabhängig davon wurde auch bei anderen Besuchern mit verschiedenen Browsern kein Referer übermittelt. Die Wahrscheinlichkeit dass alle Browser die diese Weiterleitung verfolgten den Referer unterbinden scheint mir eher eine "Unwahrscheinlichkeit".
<idee> Versuch's mal mit den HTTP-Statuscodes 301 oder 302 (Moved temporarily oder permanently). Dann ist der Browser ebenfalls für das Ansurfen der neuen Seite zuständig, aber vielleicht schickt er dann einen Referrer. Oder du nutzt den bekannten Meta-Refresh (wobei ich mir nicht so recht vorstellen kann, warum der NICHT funktioniern soll - erkläre!). </idee>
Wie genau sieht das mit dem Statuscode dann aus?
header("Location: $url");
header("HTTP/1.0 301");
exit;
(diese Syntax und Reihenfolge?)
Der Meta-Refresh funktionierte wie gesagt und diesen verwendete ich auch zuvor. Allerdings gibt es m. W. auch Browser die ein Meta-Refresh nicht unterstützen. Daher hatte ich immer noch einen Textlink der angeklickt werden konnte. Dies ist aber "unschön" und bei einem langsamen Netz dauert es auch einige Sekunden bis die neue Seite geladen wird.
Der Meta-Refresh samt Textlink ist immer noch implementiert und kommt zum Einsatz, sollte der header-Befehl fehlschlagen.
Martin