スマートフォンサイトからPCサイトへの切り替え方
作成済みのサイトのクライアントから「スマートフォンサイト作って〜」と依頼が来たのが2月か3月だったかな。。作ってみると以外と難しいですね、しかも用件がどんどん増えてって、終いには「切り替えできるようにして」との事。そこから、スマートフォンサイトからPCサイトへの切り替える方法に3ヶ月近く悩んでました。
長いですよね。。でも .htaccess で簡単に切り替える事が出来ました。
これまでは、モバイル端末のユーザーエージェントを取得して、index.phpの直上に下記ソースを貼り付けてました。
$ua = $_SERVER['HTTP_USER_AGENT'];
if((strpos($ua, 'iPhone') !== false) || (strpos($ua, 'iPod') !== false) || (strpos($ua, 'Android') !== false) || (strpos($ua, 'Mobile') !== false)){
header(Location "/sp/");
}
でもこれだとスマートフォンサイトからPCサイトへのリンクを貼っても、index.php へのリンクだった場合、スマートフォンサイトにリダイレクトされるんですよね。何かいい方法無いかな・・・Google検索してたらありました。
上記ソースを使わなくても .htaccess でスマートフォンサイトからPCサイトへアクセスする方法です。
RewriteEngine onのあとに、
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android)
RewriteCond %{QUERY_STRING} !mode=pc
RewriteRule ^$ /sp/ [R]
iPhone, iPod, Android からアクセスしてきた場合、URLの末尾に'?mode=pc'が無かったら、spディレクトリへリダイレクトされます。逆にあった場合はPCサイトが閲覧出来るというものです。
PCサイトのHTMLには <a href="/sp/">スマートフォン版</a> を貼り付け、スマートフォンサイトのHTMLには <a href="/index.php?mode=pc">PC版</a> を貼るだけです。これで完了。
PCサイトはWord Pressで作り、スマートフォンサイトはPHPだけでペラページだとしても動。現に今回の案件がそれでしたので。