みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

スマホ用とPC用のホームページ振り分

スマホ用ホームページとPC用のホームページの振り分けについて質問いたします。

pc用のホームページを「http://www.xxx.co.jp/」に作成し、スマホ用のホームページを「http://www.xxx.co.jp/sp/」に作成しました。
スマホからのアクセスに対してはスマホ用のホームページが表示され、pcからのアクセスに対してはpc用のホームページが表示されるように下記のような内容を「.htaccess」に書いています。

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

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 day"
</IfModule>

ところがpcを利用してGoogleなどの検索にてhttp://www.xxx.co.jp/sp/xxxx.htmlなどと検索結果が出た場合、そこをクリックするとpcにスマホ用のホームページが表示されてしまい、横に間延びした見苦しい内容になっています。
http://www.xxx.co.jp/sp/xxxx.htmlのページをpcで表示させた場合にはhttp://www.xxx.co.jp/xxxx.htmlを表示するように.htaccessを追加変更したいのですがどのようにすればよいのか分かりません。

投稿日時 - 2016-03-02 16:31:37

QNo.9136803

すぐに回答ほしいです

質問者が選んだベストアンサー

ご確認頂きありがとうございます。
-- は不要です。

度々すみません、RewriteRuleが誤っておりました。
最後の行は以下が正しいと思います。
RewriteRule ^/sp/(.*)$ /$1 [R,L]

投稿日時 - 2016-03-04 14:08:50

補足

解決しました。

RewriteRule ^/sp/(.*)$ /$1 [R,L]  を
RewriteRule ^sp/(.*)$ $1 [R,L]   

に書き換えることで

http://www.xxx.co.jp/sp/xxx.html  が

http://www.xxx.co.jp/xxx.html  に

リライトされるようになりました。
いろいろとご協力有難うございました。

投稿日時 - 2016-03-06 10:55:17

お礼

早速のご指示有難うございます。

最後のRewriteRuleのスクリプトを修正して試してみました。
結果は次の通りです。

・以前のように「このページは表示できません・・」などのエラー文は表示されない。

・ただ表示されたホームページはスマホ用の画面でPCの画面にリライトされてはいない。

・そのときブラウザーのURL表示覧には「http://www.xxx.co.jp/sp/xxx.html
となっており、URLを見てもりリライトされていないようです。

投稿日時 - 2016-03-04 21:11:45

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

お試して頂きありがとうございます。
回答で折りかえされてしまっていますが、以下は1行となっているので正しいです。
こちらは1行で記述されていますか?
--
RewriteCond %{HTTP_USER_AGENT} !(iPhone|Android.*Mobile|Windows.*Phone) [NC]
--

投稿日時 - 2016-03-04 10:51:52

補足

遅くなりましたが下記にディレクトリ構成を書いておきます。

www
|----.htaccess
|-----xxx.html
|---- [spディレクトリー]  *スマホ用ページのホルダー
       |---xxx.html

投稿日時 - 2016-03-04 14:08:22

お礼

ご指摘の確認事項については問題ありません。1行で記述されています。
追加スクリプトの最初と最後についている”--”は必要でしょうか?

投稿日時 - 2016-03-04 13:33:36

ANo.1

RewriteRule ^(.*)$ /sp/$1 [R,L] の下に以下内容を追加してあげればよいかと思います。

/spにアクセスした端末がスマホでなければ、/ にリダイレクトする。
--
RewriteCond %{REQUEST_URI} ^/sp/
RewriteCond %{HTTP_USER_AGENT} !(iPhone|Android.*Mobile|Windows.*Phone) [NC]
RewriteRule ^(.*)$ /$1 [R,L]
--

参考URL:http://d.hatena.ne.jp/mrgoofy33/20101009/1286615362

投稿日時 - 2016-03-02 21:18:58

お礼

早速のご指示有難うございます。
おっしゃるとおりのスクリプトを追加して確認した結果不具合が発生します。

http://www.xxx.co.jp/sp/xxx.html

をアクセスした時、ブラウザーには「このページは表示できません・・」などと表示が出て

http://www.xxx.co.jp/xxx.html

を見ることは出来ませんでした。因みにそのときのブラウザのURL欄には

http://www.xxx.co.jp/sp/xxx.html

が表示されていました。
これは
/spにアクセスした端末がスマホでない場合、/にリダイレクトされていないのではないでしょうか?

投稿日時 - 2016-03-03 11:09:53

あなたにオススメの質問