同一URLでモバイル振り分け

神奈川県ショートコースガイドは順調にグーグルにインデックスされてますが、PCURLと携帯URLがグーグルに二重登録されているので、URL振り分けをやめて、同一URL振り分けに改修しました。

メインページのソースコードを簡単に書くと

<?php
mb_internal_encoding("UTF-8");
$agent_list = "DoCoMo,J-PHONE,Vodafone,SoftBank,Semulator,UP.Browser,KDDI,DDIPOCKET,WILLCOM";
$agent_list = str_replace(",","|",trim($agent_list));
$agent = $_SERVER['HTTP_USER_AGENT'];
if(@preg_match("/{$agent_list}/",$agent,$Career)){
header('Content-Type: text/html; charset=Shift_JIS');
ob_start();
?>
<MTInclude module="モバイルトップ">

<?php
$output = ob_get_contents();
ob_end_clean();
echo mb_convert_encoding(ereg_replace("(\r|\n|\r\n)", "", $output), "SJIS", "UTF-8");
exit;
} else {
header('Content-Type: text/html; charset=UTF-8');
ob_start();
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
?>

<MTInclude module="PCトップ">


<?php
$output = ob_get_contents();
ob_end_clean();
echo mb_convert_encoding($output,"UTF-8", "auto");
exit;
}
?>

です。

ヘッダー前にphpの$_SERVER['HTTP_USER_AGENT']でキャリア情報を受けて、携帯なら携帯モジュール読み込み。その前に文字コードをshift-jisへ。PCならutf-8で。

というだけです。

続けて携帯用のgoogle Analytics 設定