Webentwicklung · 2 min read · Nov 26, 2025
Apache2: So leiten Sie Benutzer basierend auf dem Gerät mit mod_rewrite zu einer mobilen oder normalen Website um

Seit dem massiven Anstieg von Smartphones und Tablets wie dem iPhone, iPad, Android-Handys und -Tablets, BlackBerrys usw. haben Sie vielleicht darüber nachgedacht, eine mobile Version Ihrer Website zu erstellen. Dieses Tutorial erklärt, wie Sie Apache konfigurieren, um die mobile Version Ihrer Website bereitzustellen, wenn der Besucher ein mobiles Gerät verwendet, und die reguläre Version, wenn der Besucher einen Standard-Desktop-PC verwendet. Dies kann mit dem Rewrite-Modul von Apache erreicht werden.
1 Vorbemerkung
In diesem Tutorial ist meine “normale” Website unter http://www.example.com und http://example.com erreichbar, während meine mobile Website http://m.example.com heißt. Diese vhosts existieren bereits auf meinem System, daher werde ich nicht darauf eingehen, wie man sie einrichtet.
2 Aktivieren von mod_rewrite
Zuerst müssen Sie sicherstellen, dass das Apache-Modul mod_rewrite aktiviert ist. Dieses Modul ermöglicht es Ihnen, eine httpd-Umleitung, Apache-Umleitung und Apache-URL-Umschreibung über einen Apache-Webserver durchzuführen. Auf Debian/Ubuntu können Sie es wie folgt aktivieren:
a2enmod rewriteStarten Sie anschließend Apache neu - für Debian/Ubuntu lautet der Befehl:
/etc/init.d/apache2 restart3 Konfigurieren von Apache, um Rewrite-Regeln in .htaccess-Dateien zuzulassen
Meine “normale” Website www.example.com / example.com hat die vhost-Konfigurationsdatei /etc/apache2/sites-available/www.example.com.vhost und das Document Root /var/www/www.example.com/web.
Meine mobile Website m.example.com hat die vhost-Konfigurationsdatei /etc/apache2/sites-available/m.example.com.vhost und das Document Root /var/www/www.example.com/mobile.
Ich möchte die Rewrite-Regeln für jede Website in einer .htaccess-Datei platzieren (obwohl es auch möglich ist, sie direkt in der vhost-Konfigurationsdatei zu platzieren), die vom Apache HTTP-Server gelesen wird. Daher muss ich zuerst unsere vhost-Konfigurationen ändern, damit beide .htaccess-Dateien Umschreibungsanweisungen enthalten können. Wir können dies mit der Zeile AllowOverride All tun (die es .htaccess ermöglicht, alle Einstellungen in der vhost-Konfiguration, der Serverkonfiguration, zu überschreiben):
vi /etc/apache2/sites-available/www.example.com.vhost[...]
AllowOverride All
[...]vi /etc/apache2/sites-available/m.example.com.vhost[...]
AllowOverride All
[...]Starten Sie Apache danach neu:
/etc/init.d/apache2 restart4 Erstellen von Rewrite-Regeln
Jetzt lassen Sie uns die Rewrite-Regeln für die “normale” Website www.example.com / example.com erstellen, die alle Benutzer von mobilen Geräten zur mobilen Version m.example.com umleiten - ich konzentriere mich hier auf die relevanten Geräte/User-Agents, die Android, Blackberry, Googlebot-mobile (Google’s mobiler Suchbot), IE Mobile, iPad, iPhone, iPod, Opera Mobile, PalmOS und WebOS sind.
Die /var/www/www.example.com/web/.htaccess-Datei sieht wie folgt aus:
vi /var/www/www.example.com/web/.htaccess
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos" [NC]
RewriteRule ^$ http://m.example.com/ [L,R=302]
Für unsere mobile Website m.example.com sehen die Rewrite-Regeln, die alle Benutzer, die kein mobiles Gerät verwenden, zu unserer “normalen” Website www.example.com / example.com umleiten, wie folgt aus - ich habe die RewriteCond-Bedingung aus der vorherigen .htaccess-Datei negiert:
vi /var/www/www.example.com/mobile/.htaccess
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "!(android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos)" [NC]
RewriteRule ^$ http://www.example.com/ [L,R=302]
Das war’s, wir haben unsere Umleitungsanweisung eingerichtet! Jetzt können Sie einige Tests durchführen, z. B. besuchen Sie m.example.com mit einem Standard-Desktop-Browser:
Wenn alles gut geht, sollten Sie zu www.example.com umgeleitet werden:

Testen Sie nun mit einem mobilen Gerät (ich verwende hier ein Android-Handy) und gehen Sie zu www.example.com:

Sie sollten zu m.example.com umgeleitet werden:

5 Links
- Apache: http://httpd.apache.org/
- Apache-Modul mod_rewrite: http://httpd.apache.org/docs/current/mod/mod_rewrite.html
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.