Frage:
Wir bekommen laut Statistik jede Menge Besucher von sonstwo und wie diese kamen, so verschwanden sie auch wieder.
1. Es wäre praktisch, wenn man wüßte, woher der Besucher überhaupt kam und was dieser ggf. bei Google gesucht hat
2. Auf der Seite, wo der Besucher gelandet ist, z.B. Startseite, findet er vielleicht die passendere Seite nicht und geht wieder.
Antwort:
Wir haben uns ein PHP-Script geschrieben. Dies wird GANZ AM ANFANG jeder Seite eingefügt.
Was macht das Script genau?
- Es loggt jede Besucherherkunft (HTTP_REFERER) und Abfrage mit. Wir loggen keine IP-Adressen wegen Datenschutz.
- Wir vergleichen bestimmte Keywords + seine Einstiegsseite und leiten den Besucher ggf. per sofortigen REFRESH weiter.
Sinn der Sache ist daher, Besucher möglichst auf die Seiten zu leiten, wo sie vermutlich auch den passenden Inhalt finden. Eingehende Links auf die Startseite sind zwar schön, aber bei vielen Produkten ist es schon eine Herausforderung für jeden neuen Besucher, sich hier zurecht zu finden. Natürlich könnte man auch statt der Weiterleitung dynamischen Content einbinden oder Texte grafisch hervorheben etc. - das Script macht hier hoffentlich einen guten Anfang.
Hinweis:
Das PHP Script macht das, was es soll. Auf besonders tolle PHP Coding wurde nicht geachtet. ;-) Der SQL-Befehl funktioniert nur, wenn Ihr eine Datenbankverbindung bereits bestehen habt!
<?php
define(UNSEREURL,"www.ecs-webhosting.de");
function RefererCheck()
{
global $redirect;
$referer_query = strtolower($_SERVER['HTTP_REFERER']);
$referer_query = urldecode($referer_query);
$referer_query = str_replace("%20"," ",$referer_query);
$referer_query = str_replace("%22","/",$referer_query);
// Google Suche
if (substr($referer_query,0,17) == "http://www.google")
{
$referer_domain = "GOOGLESUCHE";
// Die Suchabfrage herausfinden
if (ereg("&q=",$referer_query))
{
$referer_query = substr($referer_query,strpos($referer_query,"&q=")+3);
if (strpos($referer_query,"&") > 0)
{
// Query gefunden, alles danach abschneiden (wenn vorhanden)
$referer_query = substr($referer_query,0,strpos($referer_query,"&"));
}
}
// Beispiel 1: Wer SSL will, soll auch SSL bekommen und nicht die Startseite index.php
if ((ereg("zertifikat",$referer_query) || ereg("certificat",$referer_query)) && ($_SERVER['PHP_SELF'] == "/de/index.php" || $_SERVER['PHP_SELF'] == "/en/index.php"))
{
$redirect_to = "http://www.ecs-webhosting.de/de/ssl.htm";
}
// Beispiel 2: Wer ASP.NET will, soll auch es bekommen und nicht die Startseite index.php
if ((ereg("asp.net",$referer_query) || ereg("asp net",$referer_query)) && ($_SERVER['PHP_SELF'] == "/de/index.php" || $_SERVER['PHP_SELF'] == "/en/index.php"))
{
$redirect_to = "http://www.ecs-webhosting.de/de/asp.net-4.0-hosting.htm";
}
}
// Adwords
if ($referer_domain == "" && ereg("http://googleads.g.doubleclick.net",$referer_query))
{
$referer_domain = "GOOGLE-ADWORDS";
if (ereg("&ref=",$referer_query))
{
$referer_query = substr($referer_query,strpos($referer_query,"&ref=",5));
if (strpos($referer_query,"&") > 0)
{
$referer_query = substr($referer_query,0,strpos($referer_query,"&"));
}
}
}
// Sind wir das selbst?
if ($referer_domain == "" && (substr($referer_query,0,strlen(UNSEREURL)+7) == "http://" . UNSEREURL || substr($referer_query,0,
strlen(UNSEREURL)+8
) == "https://" . UNSEREURL))
{
$referer_domain = "WIRSELBST";
$redirect_to = "";
}
if ($referer_domain != "WIRSELBST" && $redirect === FALSE)
{
$sSQL = "INSERT INTO referer_redirect (referer,query,ourpage) VALUES (
'$referer_domain',
'$referer_query',
'" . $_SERVER['PHP_SELF'] . "'
)";
$rs = mysql_query($sSQL);
}
return $redirect_to;
}
function RefererRedirect($sURL)
{
global $redirect;
// Keine URL, dann nichts zu tun
if ($sURL == "") return "";
// Session bereits vorhanden, dann nichts zu tun
if ($redirect === TRUE) return "";
// Session Cookie setzen, ansonsten geht das endlos :-(
$redirect = TRUE;
session_register("redirect");
print "
<html>
<body>
<head>
<meta http-equiv=\"refresh\" content=\"0;" . $sURL . "\">
</head>
</body>
</html>
";
die();
}
// Referer pruefen, ggf. automatisch weiterleiten
RefererRedirect(RefererCheck());
?>