12-04

Lighttpd: Rediriger ses visiteurs vers une version mobile de votre site en fonction de l'UserAgent

Si vous avez développé une version mobile de votre site, vous souhaitez certainement rediriger automatiquement les visiteurs utilisant un iPhone, un BlackBerry vers cette version. Dans ce petit billet, la version mobile du site sera http://m.admin-serv.net/ et le site normal sera https://admin-serv.net/
## Version normale du site
$HTTP["host"] == "admin-serv.net" {
     $HTTP["useragent"] =~ "(Android|iPhone|Palm|BlackBerry)" {
          url.redirect = ( "^/(.*)" => "http://m.admin-serv.net/" )
     }
}
## Version mobile du site
$HTTP["host"] == "m.admin-serv.net" {
     $HTTP["useragent"] !~ "(Android|iPhone|Palm|BlackBerry)" {
          url.redirect = ( "^/(.*)" => "https://admin-serv.net/" )
     }
}
Il ne vous reste plus qu'à recharger la configuration de Lighttpd et de tester son fonctionnement.
/etc/init.d/lighttpd force-reload
Reloading web server configuration: lighttpd.

 

 

2 Commentaires pour ce billet.

 

 

  1. Merci Beaucoup!! ca marche a merveilles!! J'utilise votre regle sur mon VPS. Seulement voila, dans le cas ou le visiteurs entre avec son mobile sur admettons http://example.com/monsuperurl, il est rediriger vers http://m.example.com ... c'est a dire la homepage, et non la page qu'il a choisi. Sauriez-vous m'indiquer la syntax afin de conserver l'adresse originale?

    En vous remciant pour cette superbe astuce,
    Set H.

  2. J'ai trouver la sollution! :)
    Afin de conserver ce qu'il y a pares le slash il faut ajouter un $1 ainsi:

    ## Version normale du site
    $HTTP["host"] == "admin-serv.net" {
    $HTTP["useragent"] =~ "(Android|iPhone|Palm|BlackBerry)" {
    url.redirect = ( "^/(.*)" => "http://m.admin-serv.net/$1" )
    }
    }
    ## Version mobile du site
    $HTTP["host"] == "m.admin-serv.net" {
    $HTTP["useragent"] !~ "(Android|iPhone|Palm|BlackBerry)" {
    url.redirect = ( "^/(.*)" => "https://admin-serv.net/$1" )
    }
    }

 

Votre commentaire