Googleなどの検索エンジンにスマートフォンのサイトが引っかかっているので、スマホと携帯以外(つまりパソコン)でスマホサイトを見た場合は、PCページヘリダイレクトする設定にしました。
その際、「baser.php」に「スマホ・携帯のユーザーエージェント判別」を追記したのでご紹介します。
baser.php の複製および修正内容
baser.php の複製
まずは、いつものように「baser/config/」ディレクトリの「baser.php」を「app/config/」へコピーしました。(BaserCMSは「baser」ディレクトリ内は触らないというのが基本です。)
ちなみに「baser.php」には、エージェント設定が書いてあるので、携帯は127行目辺り・スマホは143行目辺りの配列に新たなエージェントを追加できます。
baser.php の修正内容
携帯は「isMobile()」で、スマホは「isSmartphone()」で判別できるように、「baser.php」の最終行「 ?> 」の直前に下記ソースを追記しました。
/* 携帯・スマホ判別(CoreDesign追記) */
function isMobile() {
$useragents = Configure::read('BcAgent.mobile.agents');
$pattern = '/'.implode('|', $useragents).'/i';
return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']);
}
function isSmartphone() {
$useragents = Configure::read('BcAgent.smartphone.agents');
$pattern = '/'.implode('|', $useragents).'/i';
return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']);
}
ユーザーエージェント判別例
携帯は「isMobile()」で、スマホは「isSmartphone()」で判別できます。
<?php if isMobile() { ?>
携帯の場合に適用する内容
<?php } ?>
<?php if isSmartphone() { ?>
スマホの場合に適用する内容
<?php } ?>
<?php if ( !isMobile() && !isSmartphone() ) { ?>
PC(携帯とスマホ以外)の場合に適用する内容
<?php } ?>