人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

mod_rewiteを使用したスマホとPCの振り分けについて

http://www.anothersky.pw/skyward/archives/000094.html
こちらのサイトを参考にモバイルとPCの振り分けが実現できました。
ただ、このケースだとPCからもモバイルページが見られるようになっています。

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/spn/.*$
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android|BlackBerry|Windows.Phone) [NC]
RewriteCond %{HTTP_USER_AGENT} !iPad [NC]
RewriteCond %{HTTP_COOKIE} !viewmode=pc
RewriteRule ^(.*)$ /spn/$1 [R=301,L]


そこで、PC(モバイル以外)がスマホページにアクセスした場合に自動的にPCページに転送するにはどうしたら良いのでしょうか?
http://www.aaa.com/spn/aa.html→http://www.aaa.com/aa.html

当方が試してみると、無限ループになってしまい困っています。
よろしくお願いいたします。


●質問者: jamis
●カテゴリ:インターネット
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● なむうぉんす
●5ポイント
#RewriteEngine On
RewriteCond %{REQUEST_URI} ^/spn/.*$
RewriteCond %{HTTP_USER_AGENT} !(iPhone|iPod|Android|BlackBerry|Windows.Phone) [NC][OR]
RewriteCond %{HTTP_USER_AGENT} iPad [NC][OR]
RewriteCond %{HTTP_COOKIE} viewmode=pc
RewriteRule ^/spn/(.*)$ $1 [R=301,L]

でいかがでしょうか。


jamisさんのコメント
回答ありがとうございます。 試してみましたが、500エラーになりますね。

なむうぉんすさんのコメント
500・・・内部エラーですね。。。 力不足で申し訳ありません。 パターンを展開しないといけないのでしょうか。 >| RewriteEngine On RewriteCond %{REQUEST_URI} ^/spn/.*$ RewriteCond %{HTTP_USER_AGENT} !iPhone [NC] RewriteCond %{HTTP_USER_AGENT} !iPod [NC] RewriteCond %{HTTP_USER_AGENT} !Android [NC] RewriteCond %{HTTP_USER_AGENT} !BlackBerry [NC] RewriteCond %{HTTP_USER_AGENT} !Windows.Phone [NC][OR] RewriteCond %{HTTP_COOKIE} viewmode=pc RewriteRule ^/spn/(.*)$ $1 [R=301,L] |<

jamisさんのコメント
ありがとうございます。 うーん。やっぱり500エラーになりますね。 何かサーバーに問題があるのかな。

snow0214さんのコメント
構文が間違っています。 回答者は動作検証をしていますか。

jamisさんのコメント
ありがとうございます。 動作検証はひとつひとつ行っています。 何か構文に間違いがあるのでしょうか?

なむうぉんすさんのコメント
構文間違い一カ所は分かりました。[NC][OR]→[NC,OR] 今は自宅なので、動作確認が出来ないのが、申し訳ないです。 >| RewriteEngine On RewriteCond %{REQUEST_URI} ^/spn/.*$ RewriteCond %{HTTP_USER_AGENT} !(iPhone|iPod|Android|BlackBerry|Windows.Phone) [NC,OR] RewriteCond %{HTTP_COOKIE} viewmode=pc RewriteRule ^/spn/(.*)$ $1 [R=301,L] |<

2 ● 井戸端さん
●0ポイント

どうかしら?

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^spn/.*$

jamisさんのコメント
回答ありがとうございます。 うーん。思ったようにはならないですね。

3 ● snow0214
●95ポイント ベストアンサー

これでどうでしょう。

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} !iPhone [NC]
RewriteCond %{HTTP_USER_AGENT} !iPod [NC]
RewriteCond %{HTTP_USER_AGENT} !Android [NC]
RewriteCond %{HTTP_USER_AGENT} !BlackBerry [NC]
RewriteCond %{HTTP_USER_AGENT} !Windows.Phone [NC]
RewriteRule ^spn/(.*)$ $1 [R=301,L]

jamisさんのコメント
回答ありがとうございます。 なるほど、クッキー云々ではなくて、モバイルフォルダ以下にPCが入れないようにしたら解決するんですね。 目的の結果になりました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ