Hallo,
ich stehe vor folgendem Problem und komme einfach nicht weiter.
(Ich schreibe das ganze mal sehr ausführlich, damit es - falls es gelöst wird - auch anderen Suchenden helfen kann)
Ich will meine Webseite nun endlich Mobil-tauglich machen und das möchte ich über einen .htaccess-rewrite machen.
Wäre ja eigentlich einfach:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/m/.*$
Dann kommen die verschiedenen Conditions, die herausfinden, ob es einen mobilen Useragent gibt,
RewriteCond %{HTTP_USER_AGENT} (android|bb\d+|meego).+mobi... blablabla
und dann:
RewriteRule ^(.*)$ http://www\.domain\.de/m/$1 [R=301,L]
Dadurch landet alles, was vorher noch nicht im Unterverzeichnis …/m/ war, im Unterverzeichnis …/m/. Zum Beispiel www.domain.de/bilder.html wird zu www.domain.de/m/bilder.html. Richtig?
Jetzt möchte ich es aber auch ermöglichen, dass jemand mit dem Handy auf einen Link klickt, z.B.:
<a href='wow.php?m=0'>Zur Desktop-Version</a>
und dadurch am Beginn des htaccess ein Cookie gesetzt wird, als nächstes überprüft wird, ob es einen Cookie gibt, und wenn es den Cookie gibt, wird die rewriterule nicht angewandt, in dem Beispiel würde dann z.B. die Webseite: www.domain.de/wow.php angezeigt werden, auch auf dem Handy und eben NICHT www.domain.de/m/wow.php
Alle weiteren Links ohne die Variable „m“ werden ebenfalls nicht mehr umgeleitet.
Außerdem soll es auch umgekehrt gehen. Wenn z.B.
<a href='wow.php?m=0'>Zur Mobil-Version</a>
angeklickt wird, soll die Seite: www.domain.de/m/wow.php angezeigt werden und alle weiteren Links ohne die Variable „m“ werden ab da wieder umgeleitet.
Ich habe nun woanders folgende Schnippsel gefunden:
RewriteCond %{QUERY_STRING} (^|&)m=0(&|$)
RewriteRule ^ - [CO=mredir:0:www.website.com]
dann kamen wieder die Conditions für mobile Agents, und dann:
RewriteCond %{HTTP_HOST} !^m\.
RewriteCond %{QUERY_STRING} !(^|&)m=0(&|$)
RewriteCond %{HTTP_COOKIE} !^.*mredir=0.*$ [NC]
RewriteRule ^ http://m.website.com [R,L]
Das scheint irgendwie den Teil mit den Cookies zu regeln, allerdings als Umleitung zur Basisdomain und vor allem ohne die Möglichkeit wieder zurück zur mobilen Domain zu gelangen.
Kann mir bitte jemand zeigen, wie ich diese beiden Blöcke verbinde, so dass der von mir gewünschte Effekt herauskommt? Vielleicht gibt es ja sogar einen noch einfacheren Weg?
Vielen Dank schonmal im Voraus für eure Mühe! Ihr seid klasse
Alles Liebe,
Dirk.