モバイル、フィーチャー・フォンキャリア別、PCサイトブラウザ別で振分けをPHPで行う方法



サイト製作の最後で良くやります。
(JavaScriptやhtaccessでも出来るかと思いますが)
 

PHPの記述

<?php
$docomo = "/docomo/";		//ドコモ
$au = "/au/";			//au
$softbank = "/sb/";		//ソフトバンク
$msie = "/index.html";		//IE
$Netscape = "/index.html";	//Netscape
$opera = "/index.html";		//Opera
$firefox = "/index.html";	//Firefox
$pc = "/index.html";		//上記以外のブラウザ
$mobile = "/sp/";		//iPhone


if(isset($_SERVER['HTTP_USER_AGENT'])){
	$user_agent = $_SERVER['HTTP_USER_AGENT'];
	if(eregi("DoCoMo",$user_agent)){header("Location: $docomo");}
	elseif(eregi("UP\.Browser",$user_agent)){header("Location: $au");}
	elseif(eregi("J-PHONE",$user_agent)){header("Location: $softbank");}
	elseif(eregi("Vodafone",$user_agent)){header("Location: $softbank");}
	elseif(eregi("SoftBank",$user_agent)){header("Location: $softbank");}
	elseif(eregi("J-EMULATOR",$user_agent)){header("Location: $softbank");}
	elseif(eregi("MSIE",$user_agent)){header("Location: $msie");}
	elseif(eregi("Netscape",$user_agent)){header("Location: $netscape");}
	elseif(eregi("Opera",$user_agent)){header("Location: $opera");}
	elseif(eregi("Firefox",$user_agent)){header("Location: $firefox");}
	elseif(eregi("iPhone",$user_agent)){header("Location: $mobile");}
	else{header("Location: $pc");}
}else{
	header("Location: $pc");
}
?>

 

上記、各headerにてページの振分けが行えます。

私はケースによってPHPやJavaScriptでよくやってますが、
各振分け処理ってどの方法が一番理想的な方法なのでしょうか。