リダイレクト設定

モバイルページがあるページをPHPでリダイレクトしたいと思います。
下記のように別ファイルでモバイルを切り替える関数を作成します。

ua.php

  1. <?php
  2. function is_mobile() {
  3. $ua = mb_strtolower($_SERVER['HTTP_USER_AGENT']);
  4. if(
  5. strpos($ua,'iphone') !== false ||
  6. (strpos($ua,'android') !== false) && (strpos($ua, 'mobile') !== false) ||
  7. (strpos($ua,'windows') !== false) && (strpos($ua, 'phone') !== false) ||
  8. (strpos($ua,'firefox') !== false) && (strpos($ua, 'mobile') !== false) ||
  9. strpos($ua,'blackberry') !== false
  10. ) {
  11. return true;
  12. }
  13. return false;
  14. }

例えばスマホページが「sp」ディレクトリに入ってる場合は下記のようにします。

ua.php

  1. <?php
  2. require_once "lib/ua.php";
  3. if (is_mobile()) {
  4. header('location:/sp/');
  5. exit();
  6. }

スマホページのアノテーション設定

スマホとPCで重複ページになっているはずなので、スマホページにはheadに「canonical」でPCサイトを指定します。

/sp/index.html

  1. <link rel="canonical" href="http://www.example.com/" >

PCページのアノテーション設定

PC側でもスマホページがあることを知らせるには同じくheadに下記を追記します。

index.html

  1. <link rel="alternate" media="only screen and (max-width: 640px)" href="http://www.example.com/sp/">

サイトマップの設定

「sitemap.xml」にも追記しておきましょう。

sitemap.xml

  1. <url>
  2. <loc>http://www.example.com/</loc>
  3. <xhtml:link
  4. rel="alternate"
  5. media="only screen and (max-width: 640px)"
  6. href="http://www.example.com/sp/" />
  7. </url>

詳しくはGoogleのモバイルガイドを参照ください。

別々の URL – ウェブマスター向けモバイルガイド