Лучше всего сделать отдельный поддомен. Например: m.domen.ru, mobile.domen.ru, wap.domen.ru
Я определяю так:
$ua = str_replace('windows ce', '', strtolower($_SERVER['HTTP_USER_AGENT']));
if (!(strpos($ua, 'windows') !== false || strpos($ua, 'linux') !== false || strpos($ua, 'bsd') !== false || strpos($ua, 'x11') !== false || strpos($ua, 'unix') !== false || strpos($ua, 'macintosh') !== false || strpos($ua, 'macos') !== false))
{
header("Location: http://m.domen.ru");
}
Это не очень правильно так как перенаправляются только НЕ компьютеры, но то что есть НЕ компьютером — мобильное устройство.
Javascript не рекомендую — не все телефоны понимают (старые)