iPad,Androidタブレットを除いてスマートフォンサイトとPCサイトを切り分ける方法

  • このエントリーをはてなブックマークに追加
  • LINEで送る

サイトのトップのURLにアクセスしたとき、デバイスの種類を判別して、PC用のサイトとスマホ用サイトに切り替える方法です。

今回は、.htaccessファイルを使っての対応です。.htaccessファイルを使いますので、お使いのWEBサーバーがApacheを使用していることが前提です。

http://www.hogehoge.jp/

が共通のURLで、HPのトップへのアクセスがあったときに、スマートフォンからのアクセスの場合は、

http://www.hogehoge.jp/sp/

へリダイレクトする処理です。

まずは、.htaccessファイルの中身がこちら

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC]
RewriteCond %{QUERY_STRING} !from=sp
RewriteRule ^$ /sp/ [R,L]

このようになっています。以下、各行の説明です。

リダイレクト処理をOnにする

RewriteEngine On

以下で述べる、条件によって、アクセスするページを変えるために、リダイレクト機能をオンにします。

USER AGENTの条件設定

RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC]

RewriteCondで、リダイレクトで飛び先を書き換えるための条件を指定します。
ブラウザを介して送られてくる、USER_AGENTの情報が

「iPhone」もしくは、「タブレットを除くAndroid端末」「Windows Phone」を含んでいれば

と条件指定しています。今回は、タブレット型端末を除くため、「iPad」は除外しているのと、Androidも「Android」ではなく、「Android.*Mobile」としています。

行末の「NC」は、条件判定の際に「大文字・小文字を区別しない」設定です。「NC」は「No Case」の略だそうです。

スマホ版ページの「PC版はこちら」対応

RewriteCond %{QUERY_STRING} !from=sp

スマホサイトに、「PC版はこちら」のリンクボタンを設定する場合の対応です。
わざわざ、何で、スマホサイトへ飛ばしているのに、PC版へのリンクを設置するの?と思われますが、スマホ版の場合、画面サイズの問題から、PC版ほど詳細な情報を掲載できない場合も多いため、「詳細はこちら」的な形でPCサイトへ誘導します。

スマホサイトのPCサイトへのリンクで <a href=”/?from=sp”></a>と設定し、.htaccessファイルで、「RewriteCond %{QUERY_STRING} !from=sp」と記述しています。

表している内容は、「QUERY_STRING」上記のリンクでいうところの「?」以降の部分に「from=sp」を含んでいないとき。

ということです。スマホサイトの「PC版はこちら」をタップされたときは、スマートフォンからのアクセスでもリダイレクトを行わず、PC版のトップである
http://www.hogehoge.jp/

にそのままアクセスするようになります。

リダイレクト先の指定

RewriteRule ^$ /sp/ [R,L]

「RewriteRule」は「Rewrite=書き換え」の「Rule=規則」で、「http://www.hogehoge.jp/」を「http://www.hogehoge.jp/sp/」に書き換えています。

  • このエントリーをはてなブックマークに追加
  • LINEで送る

SNSでもご購読できます。

コメントを残す

*

CAPTCHA


This blog is kept spam free by WP-SpamFree.