Si, va messo all'inizio del file index.php, però il controllo su strpos io lo farei con !== false (i 2 segni = non sono un errore) invece che con == true

ricorda che la funzione header deve essere eseguita prima di mandare in output ogni altra cosa, pena il fallimento per "headers already sent", quindi lo script deve essere la prima cosa nella pagina index.php, prima ancore dei tag DOCTYPE o <html>

in definitiva
Codice PHP:
<?
$iphone 
strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$android strpos($_SERVER['HTTP_USER_AGENT'],"Android");
$palmpre strpos($_SERVER['HTTP_USER_AGENT'],"webOS");
$berry strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry");
$ipod strpos($_SERVER['HTTP_USER_AGENT'],"iPod");

if (
$iphone !== false || 
    
$android !== false || 
    
$palmpre !== false || 
    
$ipod !== false || 
    
$berry !== false)
{
header('Location: http://sito.org/mobile.html'); //redirect verso pagina mobile
}
?>