モバイルとモバイルのクローラーの受け入れコード

モバイルサイトなんでモバイル用のクローラーさえ来てくれればいいのですが、
ここが結構面倒なところです。

モバイルしか見れない様に制限している場合、クローラーを弾いてしまっているかもしれません。
どうもモバイルクローラーは携帯端末の様に偽装してくるのですが、その端末が古く、海外端末でくる様です。
そのため、個体識別番号で弾いたり、日本制端末で絞っていると弾いている可能性が大きいです。

http://www.sin-news.com/archives/2007/09/post_120.html :モバイル検索サイト クローラー一覧

常時、公式を確認した方がいいですが、これらの情報をもとに
クローラーにおいては、どのような条件においてもモバイルで閲覧したときと同様に
してあげないといけないっぽいです。

モバイルサイトはサイト構築が簡単なだけにSEO対策が面倒です。

Wii本体(シロ)+太鼓の達人ドドーンと2代目同梱版セット
Wii本体(シロ)+太鼓の達人ド
ドーンと2代目同梱版セット

んでは、自分のであってるかわからないが、


/**
* getMobileCrawler モバイルクローラーか判定
* @param none
* @return bool
*/
public function getMobileCrawler(){
$agent = $_SERVER['HTTP_USER_AGENT'];
//googleモバイル
preg_match('/.*Googlebot-Mobile.*/', $agent, $matches, PREG_OFFSET_CAPTURE);
if($matches[1]>0)
return true;
//yahooモバイル
preg_match('/.*Y!J-SRD.*/', $agent, $matches, PREG_OFFSET_CAPTURE);
if($matches[1]>0)
return true;
//yahooモバイル
preg_match('/.*Y!J-MBS.*/', $agent, $matches, PREG_OFFSET_CAPTURE);
if($matches[1]>0)
return true;
//DOCOMO
preg_match('/.*i-robot.*/', $agent, $matches, PREG_OFFSET_CAPTURE);
if($matches[1]>0)
return true;
//Yahoo!ケータイ
preg_match('/.*SNVSE.*/', $agent, $matches, PREG_OFFSET_CAPTURE);
if($matches[1]>0)
return true;
//au
preg_match('/.*KDDI-Googlebot-Mobile.*/', $agent, $matches, PREG_OFFSET_CAPTURE);
if($matches[1]>0)
return true;
//livedoorモバイル
preg_match('/.*LD_mobile_bot.*/', $agent, $matches, PREG_OFFSET_CAPTURE);
if($matches[1]>0)
return true;
//gooモバイル
preg_match('/.*mobile goo.*/', $agent, $matches, PREG_OFFSET_CAPTURE);
if($matches[1]>0)
return true;
//frouteモバイル
preg_match('/.*symphonybot.*/', $agent, $matches, PREG_OFFSET_CAPTURE);
if($matches[1]>0)
return true;
//Bing(モバイル用はあるのか不明)
preg_match('/.*msnbot.*/', $agent, $matches, PREG_OFFSET_CAPTURE);
if($matches[1]>0)
return true;

return false;
}

これだと他のクローラーは弾いちゃうんですけど^^;
あと、アクセス自体を弾いちゃってると意味ないので注意してください。
.htaccessとかrobots.txtでね。
全ての画面(共通のプログラム)でこの様に判定しています。

//型番, キャリア, 個体識別番号でPC,MBを判定
//モバイルクローラーは受け入れる
$this->mobile_object = new mobile_library();
$a = $this->mobile_object->getAgent();//型番
$b = $this->mobile_object->getCarrier();//キャリア
$c = $this->mobile_object->getSerialNumber();//個体識別番号

if($this->mobile_object->getMobileCrawler()
||($a != "" && $b !="" && $c !="")){
$this->pc_mb_flag = 2;//MB対応
//キャリア判定
$this->carrier_flag = $b;
//キャリアフラグ
$this->route_template_object->send_value('carrier_flag', $this->carrier_flag);
//モバイルアクセス解析コード
$this->route_template_object->send_value('access_analysis_mobile', $this->mobile_object->getAccessAnalysisMobile());
}else{
$this->pc_mb_flag = 1;//PC対応
}

これで正規の携帯とモバイル様クローラーのみモバイル判定をします。
アクセス解析は「うごく人2」です^^

割れチョコ ドデカゴン 12種 1kg
割れチョコ ドデカゴン 12種 1kg