リダイレクト設定

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

ua.php

<?php
function is_mobile() {
	$ua = mb_strtolower($_SERVER['HTTP_USER_AGENT']);
	if(
		strpos($ua,'iphone') !== false ||
		(strpos($ua,'android') !== false) && (strpos($ua, 'mobile') !== false) ||
		(strpos($ua,'windows') !== false) && (strpos($ua, 'phone') !== false) ||
		(strpos($ua,'firefox') !== false) && (strpos($ua, 'mobile') !== false) ||
		strpos($ua,'blackberry') !== false
	) {
		return true;
	}
	return false;
}

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

ua.php

<?php
	require_once "lib/ua.php";
	if (is_mobile()) {
		header('location:/sp/');
		exit();
	}

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

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

/sp/index.html

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

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

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

index.html

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

サイトマップの設定

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

sitemap.xml

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

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

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