2013年1月13日日曜日

PCとスマートフォン用サイトを切替える方法

一番簡単な方法はmod_rewriteモジュールでUserAgent情報をみて.htaccessでアクセス制御をする方法、UserAgentでAndorid, iPhone, iPod, Windows Phone などの判別が可能。


<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteCond %{HTTP_USER_AGENT} (Android|iPhone|iPod|Windows.Phone) [NC]
 RewriteCond %{QUERY_STRING} !mode=pc
 RewriteRule ^$ /sumaho/ [R,L]
</IfModule>


上記のように .htaccess ファイルを目的のフォルダ(PC用サイト)に設置しておく。


.htaccess についてここでは詳しく触れないが、ここで使用する書き方だけ少しだけ説明しよう。


'RewriteEngine On' はURLのリライトを有効にする、{HTTP_USER_AGENT}でUserAgent情報を取り出して後述に続く文字列で判定する。
'|' パイプラインは or を、'.' ドットは任意の一文字を意味する。

'[NC]' は大文字と小文字の判別をしないオプション。'[R,L]' のRはリダイレクト、Lは書き換えを意味する。

上記では、UserAgentに指定した特定の文字列が一致した場合に、/sumaho/へリダイレクトする。
UserAgentを追加することで、ガラケーも振り分けすることが可能。


なお、タブレット端末についても、記述の仕方で振り分けが可能だ。たとえば、AndroidタブレットをPCサイトへ振り分けたいのであれば、"Android" を "Android.*Mobile" に変更する。

'*' は0文字以上の任意の文字列を意味しており、'.*' と記述することで、1文字以上の任意の文字列になる。"Android"~"Mobile"の間は何文字入っても該当することになる。



最終的には、PCサイトとスマホサイトを切り替える方法は、ユーザに選択させる方法がいいのかもしれない。

初めに自動振り分けによってスマホ用ウェブページを表示させた場合、PC用ウェブページのリンクを貼っておけばいいだろう。大手のサイトは、この手法をとっていることが多い。


.htaccessについては、過去のブログでも説明しているので、参考にしてほしい。


0 件のコメント: