Zur Navigation

.htaccess - Umleitung IPhone - User

1 Nafets

Hallo zusammen,
ich habe da ein Problem mit der Erstellung einer .htaccess-Datei .

Beschreibung:
Wenn ein User mit einem IPhone, IPad, oder ein anderes mobiles Gerät meine Homepage aufruft, dann soll dieser auf eine andere Seite (Unterordner) geleitet werden.

Der Unterordner (www.mennekrather.de/mobile/index.html).

Diese Datei habe ich erstellt und auf dem Server (STRATO) in das Rootverzeichnis abgelegt.

#redirect mobile browsers
RewriteCond %{HTTP_USER_AGENT} ^.*iPhone.*$
RewriteRule ^(.*)$ http://mennekrather.de/mobile/index.html [R=301]
RewriteCond %{HTTP_USER_AGENT} ^.*BlackBerry.*$
RewriteRule ^(.*)$ http://mennekrather.de/mobile/index.html [R=301]
RewriteCond %{HTTP_USER_AGENT} ^.*Palm.*$
RewriteRule ^(.*)$ http://mennekrather.de/mobile/index.html [R=301]

Leider ohne Erfolg. Die Datei wird einfach ignoriert. Soll heißen, der User mit einem mobilen Gerät bekommt die "ganz" normale Homeage angezeigt.

Was mache ich falsch?
Vielen Dank im voraus.

Gruss
Stefan

28.05.2011 10:24

2 Jörg Kruse

Du musst als erstes die RewriteEngine einschalten

RewriteEngine on

28.05.2011 11:06

3 Nafets

Hallo Jörg,
danke für den Tipp, aber leider funktioniert es immer noch nicht.

Ich habe nun mal zwei Varianten erstellt.

1. Zum Unterordner:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^.*iPhone.*$
RewriteRule ^(.*)$ http://mennekrather.de/mobile/index.html [R=301]
RewriteCond %{HTTP_USER_AGENT} ^.*BlackBerry.*$
RewriteRule ^(.*)$ ttp://mennekrather.de/mobile/index.html [R=301]
RewriteCond %{HTTP_USER_AGENT} ^.*Palm.*$
RewriteRule ^(.*)$ ttp://mennekrather.de/mobile/index.html [R=301]

1. Zur Subdomain:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^.*iPhone.*$
RewriteRule ^(.*)$ http://www.mennekrather.de/mobile/index.html [R=301]
RewriteCond %{HTTP_USER_AGENT} ^.*BlackBerry.*$
RewriteRule ^(.*)$ http://www.mennekrather.de/mobile/index.html [R=301]
RewriteCond %{HTTP_USER_AGENT} ^.*Palm.*$
RewriteRule ^(.*)$ http://www.mennekrather.de/mobile/index.html [R=301]

Beide nacheinander in das Rootverzeichnis kopiert und getestet. Fehlanzeige!

Rufe ich die Links über den Explorer direkt auf, dann erscheint auch die richtige HP (mobile)!

Danke.

Gruss
Stefan

28.05.2011 20:59

4 Jörg Kruse

Das funktioniert, aber du erzeugst damit eine Endlosweiterleitung. Du benötigst noch eine Abbruchbedingung. Ich würde das ganze folgendermaßen zusammenfassen:

RewriteEngine on

# keine Weiterleitung im Verzeichnis /mobile:
RewriteCond %{THE_REQUEST} !/mobile/
# User Agent Strings mit OR verknüpft:
RewriteCond %{HTTP_USER_AGENT} iPhone [OR]
RewriteCond %{HTTP_USER_AGENT} BlackBerry [OR]
RewriteCond %{HTTP_USER_AGENT} Palm
# Weiterleitung:
RewriteRule .* http://mennekrather.de/mobile/ [R=301]

28.05.2011 21:47 | geändert: 28.05.2011 21:48

5 Nafets (Gast)

Hallo Jörg,

muss ich deinen Hinweis zusätzlich in die Datei aufnehmen, oder das Bestehende gegen die o.a. Kodierung austauschen.
Habe jetzt ein wenig den Überblick verloren!
Danke.

Gruss
Stefan

29.05.2011 10:30

6 Jörg Kruse

Was meinst du mit "Hinweis" - die Zeilen, die mit einem # beginnen? das sind Kommentare, die vom Webserver ignoriert werden. Du kannst sie entfernen oder auch stehen lassen - wenn du den Code mal in ein, zwei Jahr oder abändern möchtest, könnten die Kommentare hilfreich sein, diesen zu verstehen.

oder das Bestehende gegen die o.a. Kodierung austauschen.

Du kannst den Code so übernehmen; es ist dort einiges vereinfacht gegenüber deiner Version - wenn du später weitere User-Agent-Strings aufnimmst, musst du dann nur jeweils eine Zeile ergänzen.

29.05.2011 11:19

7 Nafets

Habe nun alles geändert und die Datei auf dem Server geladen.

Wenn ich nun mit dem Online-Tester (http://iphonetester.com/) die normale Homepage aufrufe, erscheint auch nur die normale HP. Gebe ich manuell die Adresse (mennekrather.de/mobile/) ein, kommt direkt die mobile - Site!

Anbei der eingetragene Befehl.
RewriteEngine on

# keine Weiterleitung im Verzeichnis /mobile:
RewriteCond %{THE_REQUEST} !/mobile/
# User Agent Strings mit OR verknüpft:
RewriteCond %{HTTP_USER_AGENT} iPhone [OR]
RewriteCond %{HTTP_USER_AGENT} BlackBerry [OR]
RewriteCond %{HTTP_USER_AGENT} Palm
# Weiterleitung:
RewriteRule .* http://mennekrather.de/mobile/ [R=301]


Könnte es vielleicht sein, dass der Server ein Problem hat?
Ich meine nur, weil mein Provider eigentlich diese Umleitungsmöglichkeit anbietet und diese auch bis vor 2 Wochen einwandfrei funktionierte.
Nun nicht mehr!

29.05.2011 12:02

8 Jörg Kruse

Wenn ich nun mit dem Online-Tester (http://iphonetester.com/) die normale Homepage aufrufe, erscheint auch nur die normale HP.

Dieser Emulator sendet nicht den User-Agent-String des IPhones an den Webserver, sondern des Browsers mit dem du auf den Online-Tester zugreifst. Um die Weiterleitung zu überprüfen, müsstest du mit einem richtigen IPhone testen, oder indem du im Browser den User-Agent-String entsprechend manipulierst. Für Firefox gibt es hierfür z.B. eine Erweiterung:

https://addons.mozilla.org/de/firefox/addon/user-agent-switcher/

29.05.2011 12:19

9 Nafets (Gast)

Ich mußte noch folgendes einfügen:
RewriteRule .* http://www.mennekrather.de/mobile/index.html [R=301]

Weil ohne diesen Eintrag die folgende Fehlermeldung erschien:
Errorr 404 not found

Hast Du dafür eine Erklärung?

Ab jetzt funktioniert es! :-)
Wärend der Durchsicht sollen nun ab und zu keine Bilder dargestellt werden, keine Ahnung, was das sein soll. Hat bisher immer funktioniert.

Danke erstmal.
Toller Service.

29.05.2011 18:12

10 Jörg Kruse

Zitat von Nafets
Ich mußte noch folgendes einfügen:
RewriteRule .* http://www.mennekrather.de/mobile/index.html [R=301]

Weil ohne diesen Eintrag die folgende Fehlermeldung erschien:
Errorr 404 not found

Hast Du dafür eine Erklärung?

Nein. Ich habe grad mehrfach mit einem IPhone User-Agent-String http://www.mennekrather.de/mobile/ getestet und erhalte nicht immer, aber sporadisch eine 404. Ähnlich verhält es sich aber auch beim Aufruf von http://www.mennekrather.de/mobile/index.html

Wärend der Durchsicht sollen nun ab und zu keine Bilder dargestellt werden, keine Ahnung, was das sein soll. Hat bisher immer funktioniert

Hängt vielleicht mit obigem Problem zusammen

29.05.2011 18:25 | geändert: 29.05.2011 18:30