INASOFT 管理人のひとこと


フリーソフトダウンロードサイト「INASOFT」の管理人 矢吹拓也 が日々の「ひとこと」を語るページです。
2021年1月1日より、旧ブログ(blog.inasoft.org)からお引越ししました。
・INASOFT Webサイト: https://www.inasoft.org/
・管理人のふたこと(長文記事/寄稿文): https://www.inasoft.org/talk/
本業の方のお仕事が再び忙しくなりつつあるので、断続的にしばらく更新が止まることがあります。

目次 | ←前へ / 2011-10-06 00:12 / 次へ→ / 最新へ⇒

■携帯版INASOFTは携帯版で!

2011/10/ 6 0:12:55


RSSRSS配信中

https://www.inasoft.org/








INASOFTでは、トップページソフトウェアの更新履歴、それからWeb版ヘルプ神緒のべるずの各ページについて、携帯電話やスマートフォンから閲覧した場合に、携帯端末用の表示となるよう、HTMLの出力結果を調整しています。

ところが、モバイル版Googleの検索結果モバイル版Twitterからのリンクをクリックした場合、「Googleの機能がPC版ページの表示内容を携帯用に自動変換したモノ」が表示される状態になっていました。

これには「Google Wireless Transcoder」なる機能が絡んできていたんだそうです。

携帯版ページを持つサイトや、UserAgentによりPC向けの表示と携帯向けの表示を切り分けているサイトの場合は、これに対する対策が必要なんだとか。

そのための対策が、HEADタグのところに、携帯版ページのURLを示してやることなんだそうです。

<link rel="alternate" media="handheld" href="携帯版ページのURL" />

これにより、「Google Wireless Transcoder」は携帯版ページへの自動遷移を行うようになります。

もし携帯版ページとPC版ページが同一のURLで、UserAgentにより出力を分けているという場合であれば、自分のURLを指定することになります。

<link rel="alternate" media="handheld" href="./" />  …  INASOFTのトップページの場合
<link rel="alternate" media="handheld" href="./recent.html" />  …  ソフトウェアの更新履歴ページの場合

Web版ヘルプ」と「神緒のべるず」の場合、PHPにて多数のページのHEADタグを動的に生成している関係で、自URLもPHPにて生成する必要があります。

if ( isset($_SERVER['HTTPS']) and $_SERVER['HTTPS'] == 'on' ) {
  $protocol = 'https://';
}
else {  
  $protocol = 'http://';
}  
$url  = $protocol.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo " <link rel='alternate' media='handheld' href='".$url."' />\n";

なお、これはモバイル版Googleに対する検索結果を誘導するため(いわゆるSEO対策的)にも役に立つのだそうで。

この書き方は「Mobile Link Discovery」と呼ばれる仕様であり、Googleの検索結果以外でも有効な対策となるのだとか。

ちなみに、モバイル版Googleが検索結果を作るために送ってくるボットは、UserAgentの文字列に "Googlebot-Mobile" という文字列を含ませてきているのだとか。

だから、UserAgentによるPC版/携帯版ページ出力分岐の条件式には "Googlebot-Mobile" が含まれているかどうかも加えないといけないんですね。

分岐用のフラグを設定する処理をPHPで書くとしたら、次のような感じになるでしょうか。

$agent = $_SERVER['HTTP_USER_AGENT'];

if (preg_match("/^DoCoMo|^J-PHONE|^Vodafone|^SoftBank|^UP.Browser|^KDDI|^PDXGW|DDIPOCKET|WILLCOM|Googlebot-Mobile/", $agent)) {
 $keitai = true;   // 携帯向けサイトを表示するフラグ
 $smtphn = false;  // スマートフォン向けサイトを表示するフラグ
}
else if (preg_match("/iPod|iPhone|Android/", $agent)) {
 $keitai = true;
 $smtphn = true;
}
else {
 $keitai = false;
 $smtphn = false;
}

ただ、上記の書き方にはNOKIA等、海外の携帯には対応していませんので、本格的に対応するとしたら、もうちょっと複雑な対応が必要になるかと思います。

また、スマートフォンであると判定した場合に、PC寄りのサイトを表示するのか、携帯寄りのサイトを表示するのか、サイトのポリシーごとに変わってきますので、ここら辺も色々書き方が変わってくるかと思います。

(Googleでは、スマートフォンではPC向けのサイトを表示することを奨励しているらしいです。INASOFTでは携帯寄りのサイトを表示しちゃっていますが)

INASOFTでも、10月4日の夜より、この対策を加えたところ、対策を加えた1分後には正しい表示(モバイル版Googleの検索結果には携帯用ページのマークが表示され、Twitterからのリンクを辿ったときでもGoogle Wireless Transcoderに寄らない携帯版ページが正しく表示される状態)となっていました。





目次 | ←前へ / 2011-10-06 00:12 / 次へ→ / 最新へ⇒


目次の表示:


ブログではないので、コメント機能とトラックバック機能は提供していません。ご質問・ご意見等はメールフィードバックまたはTwitter等からお願いします。いただいたご質問・ご意見などは、この「管理人のひとこと」の記事に追加、あるいは新規の記事にする形で一部または全文をそのまま、あるいは加工させていただいた上で、ご紹介させていただく場合があります。
当サイトでは掲載内容による不具合等に関する責任を持ちません。また、内容の正確性についての保証もありませんので、情報をご利用の際は、利用者の自己責任で確認をお願いします。本ページは公開から1年半後の任意のタイミングで削除される予定です。




2554472 (+0172)[+0573]

Copyright© 2010-2021 INASOFT