携帯電話から、PCサイトにアクセスした際にモバイル用のサイトに振り分けるといった対策を行うことは多いだろう。
自分もその一人である。
最初は、.htaccessを使って頑張っていたんだけど、知識不足で上手くいかず。ページ単位での転送はできるんだけど、転送した後に携帯サイト内でページ移動するとページが表示されず・・・
いろいろ悩んでいたんだけど、PHPが使えるなら、header関数で転送したほうが安全のようだ。
非常に参考になったのがこのサイト
携帯サイト振り分け (SEO対策考慮)
このページを参考に作成した振り分け用のスクリプトがこれ。
HTMLの頭に以下のコードを。
<?php
$page_m='モバイルサイトURL';
$agent=$_SERVER['HTTP_USER_AGENT'];
require_once('furiwake.txt');
?>
モバイルサイトURLを実際のサイトのURLに置き換えて欲しい。URLは、httpから記述する。
読み込むPHP(上記、furiwake.txt)の内容が以下。
<?php
if (preg_match("/UP\.Browser\/[3-5]/",$agent) ||
preg_match("/J-PHONE\//",$agent) ||
preg_match("/DoCoMo\//",$agent) ||
preg_match("/Opera[s\/]/",$agent)
&& !(preg_match("/(Win|Mac|Linux|FreeBSD|OS/2|Solaris)/i",$agent)) ||
preg_match("/UP.Browser/",$agent) ||
preg_match("/^Vodafone/",$agent) ||
preg_match("/^SoftBank/",$agent) ||
preg_match("/^MOT-/",$agent) ||
preg_match("/DDIPOCKET;/",$agent) ||
preg_match("/WILLCOM;/",$agent) ||
preg_match("/L-mode\/\//",$agent))
{
header("Location: $page_m");
}else{
exit();
}//end if
?>
自分の場合はキャリアごとのページの振り分けは行っておらず、Docomo、Softbank、au共通で振り分けている。