Rediriger un visiteur mobile vers une autre URL

WRInaute accro
Bonjour,

Je voudrais rediriger mes visiteurs mobiles vers ma version mobile.
www.monsite.zob
vers
m.monsite.zob
Bien sur, que www.monsite.zob/article/article1 redirige aussi vers m.monsite.zob/article/article1
Quel moyen utiliser ? Est ce possible de le faire par htaccess ? Ou vaut il mieux le faire en PHP ?

Quel est le meilleur moyen en fait :(

Merci!
 
WRInaute accro
Pour ceux qui s'intéressent à la question, j'avance.

Voici l'htaccess pleinement fonctionnel :
Code:
RewriteEngine On

#redirect mobile browsers
RewriteCond %{HTTP_USER_AGENT} ^.*iPhone.*$
RewriteRule ^(.*)$ http://m.monsite.com [R=301]
RewriteCond %{HTTP_USER_AGENT} ^.*BlackBerry.*$
RewriteRule ^(.*)$ http://m.monsite.com [R=301]
RewriteCond %{HTTP_USER_AGENT} ^.*Palm.*$
RewriteRule ^(.*)$ http://m.monsite.com [R=301]

RewriteCond %{HTTP_HOST} ^monsite.com$
RewriteRule ^(.*) http://www.monsite.com/$1 [QSA,L,R=301]
Ce qui devrait fonctionner pour 90% des webmaster... mais pas pour moi :mrgreen:
En effet, m.monsite.com et http://www.monsite.com utilisent le même script, sur deux sous domaines différents (ils pointent au même endroit).

Comment ajouter une condition pour dire au serveur DANS l'htaccess :
Si le domaine est www.monsite.com, appliquer :
Code:
RewriteCond %{HTTP_USER_AGENT} ^.*iPhone.*$
RewriteRule ^(.*)$ http://m.monsite.com [R=301]
RewriteCond %{HTTP_USER_AGENT} ^.*BlackBerry.*$
RewriteRule ^(.*)$ http://m.monsite.com [R=301]
RewriteCond %{HTTP_USER_AGENT} ^.*Palm.*$
RewriteRule ^(.*)$ http://m.monsite.com [R=301]
Sinon sauter ce bloc

:?:
 
WRInaute passionné
Je ne suis pas sûr de t'aider avec les .htaccess, mais sinon, tu peux regarder aussi dû coté de la fonction php get_browser (qui sort un array avec la présence du "is mobile device" à 1 ou null)

Du côté de mon site pro, je taff sur une autre méthode style "pop up" qui s'affiche si mobile détecté avec en gros "une version mobile du site est disponible, cliquez ici pour l'afficher".
Je trouve les redirections forcés parfois un peu trop "méchante" car pour un iphone par exemple, des versions "standard" du site (avec des jolies CSS et tout et tout) sont parfois beaucoup mieux que les versions "mobiles".

L'autre solution que j'avais exploré était un rajout "masqué par .htaccess" d'une variable ?ismobile=1 et d'afficher ou non certains éléments/scripts.

Bon, j'ai complètement répondu à côté, c'est surtout pour te filer quelques pistes que j'avais exploré ;)
 
WRInaute accro
Merci mais j'ai trouvé, je mettrai le truc ici quand j'aurai le temps.
Ma version normal est déjà moche sur PC alors sur iphone c'est la cata absolue.

Comme j'offre le même contenu et les mêmes fonctions, je ne laisse pas le choix. Mais j'en reviendrai p-e.
En tout cas ce qui me sert bien c'est que ça permet de balancer chaque URL vers son équivalent mobile.
 
WRInaute impliqué
Tu devrais utiliser ce script qui est mis a jour et qui te permet de differencier entre les mobiles modernes, style smartphones et les autres, et de rediriger ou tu veux:
http://detectmobilebrowsers.mobi/
Clique sur download the code here et clique OK, le texte dis que le script est gratuit pour utilisation non commerciale, c'est tout.
 
WRInaute passionné
Je mets les rewrite pour lighttpd si ça jamais ça intéresse quelqu'un :
Code:
$HTTP["useragent"] =~ "(iphone|palm|BlackBerry)" {
url.redirect = ( "^/(.*)" => "http://mobile.monwww.net/$1")
}
A vérifier si case sensitive ou non pour les useragent.
 
Discussions similaires
Haut