ホームページがスマホで表示されないときは「htACCESS」が原因(備忘録)

こんにちは。YOSHITAKA(@YOSHITA19704216)です。

初心者
ページが表示されないんですが、原因は何でしょうか

よしたか
なんらかの原因でリダイレクトがうまくいっていないかもしれません。。

特定のページにアクセスしてもまた別のページに飛ばすことをリダイレクトと言います。
急なバグでページが表示されない時などは、この機能を使って解決することができます。

この記事を読むことで
  • ページが表示されない時に疑うべき点がわかります。
  • 特定のアクセスを違うページに飛ばす基本がわかります。

Contents

アクセスを別ページに飛ばす方法

PC用ページとスマホ用ページが別々に存在する場合「.htaccess 」の振り分け

PC用ページとスマホ用ページが別々に存在する場合、ユーザーエージェントで振り分けるのが一般的です。
振り分ける方法は.htaccess , javascript , php といくつかあります。

この中でも.htaccess で自動的に振り分ける方法は、一番使います。

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

こちらがとても参考になります。

>>AllAboutPC版とスマートフォン版サイトを自動振り分けする方法

4行目の「RewriteCond %{QUERY_STRING} !mode=pc」

?mode=pc

というパラメーターが

「付与されていないときだけ、リダイレクトする」
「付与されている場合は、リダイレクトしない」

スマホ用(SP)ページからPC用ページにリダイレクトする場合

使う機会はあまりないと思いますが、検索結果でスマホ専用ページが、PC用のページより上位に来たケースを考えます。
スマホページにアクセスして、PCページに飛ばしたい時は、3行目を以下のように変更します。

RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|iPad|Android|Windows\ Phone)

Javascript でスマホとPCを振り分ける

<script type="text/javascript">
if ((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0) {
location.href = '/sp/';
}
</script>

indexOf()メソッドは、指定したキーワードの発見位置を返す。
発見できなければ「-1」を返すので、0より上であればキーワードが発見できたことになります。

navigator.userAgentでユーザーエージェントを取得し、値が「iPhone」だった場合

iPhoneだったときの処理

<script type="text/javascript">
if ((navigator.userAgent.indexOf('iPhone') > 0{
//iPhoneだったときの処理
}
</script>

iPhoneじゃなかったときの処理

<script type="text/javascript">
if ((navigator.userAgent.indexOf('iPhone') == -1{
//iPhoneじゃなかったときの処理
}
</script>

PHPによるスマホ、PCの振り分け

<?php
$ua=$_SERVER['HTTP_USER_AGENT'];
if((strpos($ua,’iPhone’)!==false)||(strpos($ua,’iPod’)!==false)||(strpos($ua,’Android’)!==false)) {
header(“Location:/sp/index.php”);
exit();
}
?>

パラメータ付URLの振り分け

パラメータ付きURLを、パラメータ付きURLへリ
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14108068759

参考にしたページ

>>ユーザーエージェントによってPCとスマートフォン(iPhone / Android)を振り分ける方法いろいろ(PHP / JavaScript / .htaccess等)

>>.htaccessでPCサイトとスマートフォンサイト切り替え

>>JavaScript とかによるブラウザ判定方法のまとめ

>>スマートフォン(iPhone/Android)のページ内振り分け

まとめ

今回はについて.htaccess ご説明しました。
普段ではなかなか使わない機能ですので必要な時に使っていただければと思います。

僕も使う機会が少ないので詳しくはまだ分かっていませんので、正しい説明が全て出来ているかと言うとちょっと分かりないところがあります。
.htaccess はむやみやたらに触るところではありませんので、今回の記事は参考程度にとどめていただければと思います。

あなたの悩み解決の一助になればいいと思って書いてみました。 

あなたは「Web集客」に限界を感じていませんか?

サイトをただ作るだけで満足ですか?

あなたのサービスやコンテンツはとっても有益なものがたくさんあります。

良いコンテンツも埋もれてしまっては全く意味がありません。

正しい知識と実践で、SEO対策はもちろん、ユーザビリティーを考えたサイトを作りませんか?

私と歩めばWebマーケティング知識とWordPressスキルが定着し、サイト回遊率、再訪問がアップします。

しかも、これだけでは終わりません!!

その先の「攻めのメディア」と組み合わせ、あなたのサービスを広めて売上を伸ばしていきます。

サイトを育てて、長い間愛されることのできるWordPressサイトからの集客導線(ゴールデンルート)を一緒に作りませんか?

↓ ↓ ↓ ↓ ↓ ↓ 

おすすめの記事