Redirection mobile

WRInaute occasionnel
Bonjour,

J'essaye d'adapter mon site aux martphones, j'ai moi même un Samsung galaxy S.
Mais quand j'affiche mon site sur mon smartphone, il ne tient pas compte de ce que j'ai renseigné sur mon .htaccess, la direction ne se fait pas.

Contenu de mon fichier .htcaccess

Code:
ErrorDocument 404 http://www.SSSSSSSSSSS.fr/404.htm
SetEnv PHP_VER 5

DirectoryIndex index.php

RewriteEngine On
RewriteCond %{HTTP_HOST} ^SSSSSSSSSSS.fr$
RewriteRule ^(.*)   http://www.SSSSSSSSSSS.fr/$1  [QSA,L,R=301]

RewriteEngine On RewriteCond %{HTTP_USER_AGENT} "ipod|iphone|ipad" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "android|palm"
RewriteRule (.*) http://www.SSSSSSSSSSS.fr/mobile/ [R=301,L]

auriez-vous une idée ?
 
WRInaute accro
Ah et en fait j'avais lu trop vite, c'est censé le faire aussi si ça contient "android" ou "palm". Note au passage qu'on peut supposer que tu t'es vautré dans ton copier-coller, parce que la ligne avec RewriteEngine On RewriteCond... est évidemment fausse (il manque un retour à la ligne, et puis ce n'est de toutes façons pas la peine de répéter RewriteEngine On à chaque fois). Et que tu pourrais très bien avoir les 5 "expressions" en une seule regex: "ipod|iphone|ipad|android|palm".

Maintenant, est-ce-que le Samsung Galaxy S envoie "android" dans son UA? Je n'en sais trop rien... La détection des mobiles est un art difficile...

Jacques.
 
WRInaute accro
User-Agent. C'est l'information que chaque navigateur envoie qui permet de l'identifier (plus ou moins facilement), et qui est disponible dans Apache dans %{HTTP_USER_AGENT}.

Jacques.
 
WRInaute occasionnel
Merci Jacques, je vais regarder cela ce soir, si j'ai bien compris je doit pouvoir retrouver l'information dans les log apaches.
 
WRInaute accro
Oui.

Ah ben tiens, j'ai trouvé... Tes règles disent: ipod, ipad ou iphone sans faire attention aux majuscules/minuscules (c'est le NC), mais android ou palm uniquement en minuscules.

Fais juste:
Code:
RewriteCond %{HTTP_USER_AGENT} "ipod|iphone|ipad|android|palm" [NC]
RewriteRule (.*) http://www.SSSSSSSSSSS.fr/mobile/ [R=301,L]

Ceci dit, ça pose quand même un problème ta règle... Ca va partir en boucle, puisque quelle que soit l'URL (y compris /mobile/), à partir du moment où l'UA correspond, il va faire un redirect. Ca falloir être un peu plus subtil que ça...

Jacques.
 
WRInaute passionné
comme le dit Jacques il faut surement ajouter une condition (je pense que les "" sont en trop) :
Code:
RewriteCond %{HTTP_USER_AGENT} ipod|iphone|ipad|android|palm [NC]
RewriteCond $0 !^mobile/
RewriteRule (.*) http://www.SSSSSSSSSSS.fr/mobile/ [R=301,L]
 
Discussions similaires
Haut