.htaccessでブログ詳細ページのPC・スマホの振り分けをやった!

【この記事の所要時間 : 約 3 分

アクセス解析を見ると、スマホでの閲覧が30%ほどになっているので、トップページに来た場合だけスマホ用ページのトップに飛ばしていたが、PC用個別ページにスマホで来た場合もスマホ用個別ページへ飛ばすように設定を変更した。
.htaccessによるリダイレクトを使ったのだが、今まで要件は以下。
http://canalize.jp/ → http://canalize.jp/i/
http://canalize.jp/index.php → http://canalize.jp/i/
で、その設定は以下の通り。

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android|Windows\ Phone)
RewriteRule ^$ i/ [R]
RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android|Windows\ Phone)
RewriteRule ^index\.php$ i/ [L]

今回の要件は
http://canalize.jp/ → http://canalize.jp/i/
http://canalize.jp/index.php → http://canalize.jp/i/
http://canalize.jp/archives/page01.php → http://canalize.jp/archives/i/page01.php
http://canalize.jp/archives/page02.php → http://canalize.jp/archives/i/page02.php
のように、トップページだけでなく、個別ページは、同一のファイル名のページに転送する。
で、その設定は以下の通り。

RewriteEngine On
RewriteCond %{REQUEST_URI} !/i/
RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android|Windows\ Phone)
RewriteRule ^/?archives/(.*) /archives/i/$1 [R]
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android|Windows\ Phone)
RewriteRule ^$ i/ [R]
RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android|Windows\ Phone)
RewriteRule ^index\.php$ i/ [L]

これでOK!
以下、参考サイト。
htaccessによるPC・スマートフォンの振り分け転送
ApacheのRewriteRuleで検索条件に^/がマッチしない場合がある理由Add Star

サーバ構築の実際がわかる Apache[実践]運用/管理 (Software Design plus)
鶴長 鎮一
技術評論社
売り上げランキング: 156,652
スポンサーリンク
レクタングル(大)広告
  • このエントリーをはてなブックマークに追加
スポンサーリンク
レクタングル(大)広告