日記・プロフィールへの携帯からのアクセスを携帯版該当ページに自動転送する機能

[ガラケー版(QRコード)] 総閲覧回数:3,927,091回 / ブログ拍手:2,554
作品DB等各サービスの機能追加情報や、技術系・面白系記事を中心に提供。
記事の投稿は基本Twitterでも告知させて頂いています。
連絡は作品DBの論客の方なら私書、DB外ユーザの方ならメールTwitterで可能です。
アクセス記録[推移 / PV内訳(過去1日 / 過去1週間) / 外部アクセス元 (昨日 / 過去1週間) / ログイン論客足跡]
プロフィール私書(メール)
   /   /送済
評価(一覧   /)
投票   /共:   /
ファン登録
作品/情報/
DB構築()
ブログ
[書く]
攻略記事リンク集
My Play List
<=次の記事 ブラックジャックによろしくの佐藤秀峰氏、自分のサイト上での漫画配信スタート
=>前の記事 昨日よく見られた画像集ランキング

1.
2009/07/29 作品DB開発/運用 > 日記・プロフィールへの携帯からのアクセスを携帯版該当ページに自動転送する機能」
[この書込みのみ表示(記事URL紹介用) / 編集 / 削除 / トラバ送信 / 共有分類に追加(タグ付け)]拍手:1個

日記・プロフィールへの携帯からのアクセスを携帯版該当ページに自動転送する機能を追加しました。
なので、

・友人に自分のページを紹介する時には
http://www.accessup.org/pj/6_B4C9CDFDBFCDA4B5A4F3/
といったPC版個人のトップページを教える

・自分の過去の日記の記事の紹介では
http://www.accessup.org/pj/6_B4C9CDFDBFCDA4B5A4F3/200907281.html
といったPC版のURLの紹介だけで済む。
また何らかの理由で携帯版ユーザーがPC版ページの日記にアクセスしてきても、携帯版に自動転送する事が出来るので問題なく見せることができる

ようになりました。

なお、アクセス環境が携帯かどうかの判別には
sub is_mobile(){
  my $self=shift;
  my $user_agent=shift || '';
  my $input=0;
  if($user_agent){
    $input++;
  }
  else{
    $user_agent=$ENV{'HTTP_USER_AGENT'} || '';
  }
  $self->init_vars() unless $self->{'loaded_vars'};

  my $mobile_identity=0;
  if($user_agent){
    if($input==0){
      # 携帯IDが取得可能な環境かどうかの識別
      if($user_agent=~ m!Opera|MSIE|Firefox|Mozilla!i){ # 念の為明示的に除外(KDDI && MSIE && Operaの事例があった為)
      }
      elsif($self->is_softbank){
        $mobile_identity++;
      }
      elsif($self->is_docomo()){
        $mobile_identity++;
      }
      elsif($self->is_emobile){
        $mobile_identity++;
      }
      elsif($self->is_kddi()){
        $mobile_identity++;
      }
    }
    else{
      # inputされたUAが携帯かどうかの判断/書き込み表示用
      if($user_agent=~ m!Opera|MSIE|Firefox|Mozilla!i){ # 念の為明示的に除外(KDDI && MSIE && Operaの事例があった為)
      }
      elsif($user_agent=~ m!^(?:J-PHONE|Vodafone|SoftBank)|SoftBank\;SN\d!i){
        $mobile_identity++;
      }
      elsif($user_agent=~ m!DoCoMo!i){
        $mobile_identity++;
      }
      # Emobileは分からない
      # KDDI
      elsif($user_agent=~ m!^KDDI!i || $user_agent=~ m!UP[\./]Browser!i){ # とりあえず携帯であることは確実
        $mobile_identity++;
      }
    }
  }
  return $mobile_identity;
}


sub is_emobile(){
  my $self=shift;
  if($ENV{'HTTP_X_EM_UID'}){
    return 1;
  }
}

sub is_docomo(){
  my $self=shift;
  if($ENV{'HTTP_X_DCMGUID'} || ($ENV{'HTTP_USER_AGENT'} && $ENV{'HTTP_USER_AGENT'}=~ m!DoCoMo!i) ){
    return 1;
  }
}

# UP.Browserがあるから一番最後に/一応他携帯を除外
sub is_kddi(){
  my $self=shift;
  if($ENV{'HTTP_X_UP_SUBNO'} || ($ENV{'HTTP_USER_AGENT'} && ($ENV{'HTTP_USER_AGENT'}=~ m!^KDDI!i || 
$ENV{'HTTP_USER_AGENT'}=~ m!UP[\./]Browser!i && $ENV{'HTTP_USER_AGENT'}!~ m!^(?:J-PHONE|Vodafone|SoftBank|Docomo)|SoftBank\;SN\d!i) ) ){
    return 1;
  }
}

sub is_softbank(){
  my $self=shift;
  if( $ENV{'HTTP_X_JPHONE_UID'} || ($ENV{'HTTP_USER_AGENT'} && $ENV{'HTTP_USER_AGENT'}=~ m!^(?:J-PHONE|Vodafone|SoftBank)|SoftBank\;SN\d!i) ){
    return 1;
  }
}
というロジックで判断しています。

後で他の分野にもこうした携帯判断&転送処理を入れていく予定です。

コメントする1個


管理人さん さんのコメント (2009/07/30) [編集/削除(書込み者/所有者が可能)]
自分も日記で書くとき、PC版と携帯版両方のURL書いて面倒だなぁ、というところがあったので、自分が楽する為にも対応範囲を広げていこうと思います。
ふぁい さんのコメント (2009/07/29) [編集/削除(書込み者/所有者が可能)]
自働転送はありがたいです。
今までezwebのgoogleから検索するとPC用のページに飛んでしまう事があったんですが、
これで読めるようになりそうです。


[他の記事も読む]
<=次の記事 ブラックジャックによろしくの佐藤秀峰氏、自分のサイト上での漫画配信スタート
=>前の記事 昨日よく見られた画像集ランキング


大分類が「作品DB開発/運用」の記事
この論客の記事全て
↑上へ