8722 sujets

Développement web côté serveur, CMS

Quelqu'un connait un moyen fiable de détecter si un visiteur est sur un navigateur mobile / téléphone portable (dans le but de le renvoyer sur la version mobile du site) ?

Les exemples que j'ai vu utilisent tous le user agent avec des regex mais ça me parait peu fiable.
La lecture de l'entête HTTP est le seul moyen de détecter le type de navigateur utilisé.
Ce qui donne quelque chose comme ça en PHP :

if ( 
	strstr($_SERVER['HTTP_USER_AGENT'],'iPhone')
	 || 
	strstr($_SERVER['HTTP_USER_AGENT'],'iPod')
	 || 
	strstr($_SERVER['HTTP_USER_AGENT'],'android')
	 || 
	strstr($_SERVER['HTTP_USER_AGENT'],'blackberry')
	 || 
	strstr($_SERVER['HTTP_USER_AGENT'],'Windows Phone')
	 || 
	strstr($_SERVER['HTTP_USER_AGENT'],'symbian')
	 || 
	strstr($_SERVER['HTTP_USER_AGENT'],'series60')
	 || 
	strstr($_SERVER['HTTP_USER_AGENT'],'palm')
)
{
	header('location: mobile/');
}

Il doit être possible de faire la même chose directement dans le htaccess avec url_rewrite pour que ce soit Apache qui fasse la redirection.