Da sich in letzter Zeit die Anfragen zu dem Thema "Browserweiche" im Forum häufen, habe ich hier eine Kurzanleitung abgelegt, die sofort für eigene Zwecke genutzt werden kann.
Die weiter unten beschriebene Browserweiche basiert auf PHP. Der Provider, der den Webspace zur Verfügung stellt sollte PHP also unterstützen.
Die Browserweiche wurde so angelegt, dass sie den sogenannten "User Agent" (in unserem Fall den Webbrowser) des Anwenders feststellt und dann entweder die für die Browser der mobilen Geräte optimierte Seite aufruft oder, alternativ, die Seite, die für die Browser der stationären Geräte optimiert wurde.
Um die beiden Browsergruppen unterscheiden zu können, wird von der Browserweiche eine vorbereitete Tabelle "gelesen" und geprüft, ob der festgestellte User Agent in der Tabelle enthalten ist. Das ist im Grunde eine einfache ja/nein Abfrage, die eine ebenso einfache Auswertung ermöglicht.
Zur Umsetzung benötigen wir ein PHP Script, wie das folgende, das wir der Einfachheit halber "index.php" nennen.
Das Script kann mit jedem einfachen Texteditor angelegt werden, z. B. mit dem Windows "Notepad". Der u. a. Code kann dazu mit copy & paste übernommen werden und als Datei "index.php" gespeichert werden:
-------------------------------
<?php
$useragent = $_SERVER['HTTP_USER_AGENT'];
if (preg_match("/(alcatel|amoi|android|avantgo|blackberry|benq|cell|cricket|docomo|elaine
|htc|iemobile|iphone|ipad|ipaq|ipod|j2me|java|midp|mini|mmp|mobi|motorola|nec-|nokia|palm|
panasonic|philips|phone|playbook|sagem|sharp|sie-|silk|smartphone|sony|symbian|t-mobile|telus
|up\.browser|up\.link|vodafone|wap|webos|wireless|xda|xoom|zte)/i",$useragent))
{
header( 'Location: mobil.htm' );
} else {
header( 'Location: desktop.htm' );
}
?>
-------------------------------
Im o. a. Scriptcode bin ich davon ausgegangen, dass die Startseite der mobilen Website "mobil.htm" heißt (oben gelb markiert) und die Startseite der stationären Version "desktop.htm" (oben grün markiert).
Beide Seiten müssen in dem Fall im selben Verzeichnis auf dem Webserver liegen, in dem auch die Browserweiche "index.php" abgelegt wird.
Sollen die für die jeweiligen Browser optimierten Seiten in anderen Verzeichnissen-, oder gar in anderen Webspaces abgelegt werden, muss der Pfad im "Location:" Statement zusätzlich angegeben werden.
Das kann dann so aussehen, wenn die komplette URL angegeben wird:
------------------------------------
header("Location: http://www.beispiel.de/mobil.htm");
------------------------------------
Oder so, wenn die Startdatei "mobil.htm" nur in einem anderen Verzeichnis des aktuellen Webspace liegt (hier im Verzeichnis "smartphones"):
------------------------------------
header("Location: ../smartphones/mobil.htm");
------------------------------------
Die Browserweiche "index.php" muss in jedem Fall da liegen, wo die üblicherweise genutzte URL hinzeigt. Der ursprüngliche Aufruf der Website ändert sich dann nicht! Gleichgültig, wo die Website liegt, auf die umgeleitet wurde.
Wichtig! Im Startverzeichnis (i. d. R. das root Verzeichnis des Webspace) darf keine weitere Startdatei liegen, wie z. B. eine "index.htm" oder "index.html"
Die o. a. Browserweiche kann über diesen Link getestet werden. Da wird eine von 2 einfachen HTML Seiten aufgerufen, in der darauf hingewiesen wird, welcher Browsertyp (mobil/Desktop) für den Aufruf benutzt wurde.
Zur Unterscheidung habe ich für Desktop Browser eine kleine Flash Animation eingebaut-, die Seite vertikal auf Mitte gesetzt und dem Hintergrund einen Farbverlauf gegeben.
Für die mobilen Browser entfällt die Flash Animation und die vertikale Ausrichtung, außerdem wird der Hintergrund ohne Verlauf dargestellt.
Viel Erfolg