INASOFT 管理人のひとことフリーソフトダウンロードサイト「INASOFT」の管理人 矢吹拓也 が日々の「ひとこと」を語るページです。 2021年1月1日より、旧ブログ(blog.inasoft.org)からお引越ししました。 ・INASOFT Webサイト: https://www.inasoft.org/ ・管理人のふたこと(長文記事/寄稿文): https://www.inasoft.org/talk/ 2022年7月下旬より再び本業多忙化してきているため、更新頻度は落ちます。 [2022/7/24 19:32] Tweet ■携帯版INASOFTは携帯版で!2011年10月 6日(木) 0:12:55 [はてなダイアリーから転記] |
RSS配信中 | |
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に寄らない携帯版ページが正しく表示される状態)となっていました。 目次の表示: ブログではないので、コメント機能とトラックバック機能は提供していません。ご質問・ご意見等はメール、フィードバックまたはTwitter等からお願いします。いただいたご質問・ご意見などは、この「管理人のひとこと」の記事に追加、あるいは新規の記事にする形で一部または全文をそのまま、あるいは加工させていただいた上で、ご紹介させていただく場合があります。 当サイトでは掲載内容による不具合等に関する責任を持ちません。また、内容の正確性についての保証もありませんので、情報をご利用の際は、利用者の自己責任で確認をお願いします。 |
- 最近の更新 - |
|
3212166 (+0077)[+0218] Copyright© 2010-2024 INASOFT |