ここから本文です

解決済みの質問

知恵コレに追加する

PCサイトと携帯サイトを運営しています。原則として携帯からのアクセスを(トップ...

taigo1025さん

PCサイトと携帯サイトを運営しています。原則として携帯からのアクセスを(トップページだけでなく)全て携帯サイトへ振り分ける良い方法を教えてください。ディレクトリ構造/名前は一部を除きPC用サイトと同じです

★PCサイト
http://●●●.com

★携帯サイト
http://mobile.●●●.com

上記のように、2つのサイトがあり携帯電話からのアクセスを携帯サイトに振り分けたいと思っています。
htaccessを利用して、トップページへのアクセスのみ携帯サイトに転送することはできましたが、トップページ以外のページに直接携帯電話からアクセスがあった場合も対応する携帯サイトのページに(http://●●●.com/directory/)に転送したいのです。

(例:対応する携帯用ページへ転送)
★PCサイト
http://●●●.com/directory1/file1.php

↓携帯電話からのアクセスを以下に振り分ける

★携帯サイト
http://mobile.●●●.com/directory1/file1.php

なお、基本的にディレクトリ構造はPC/携帯でまったく同じにしていますが、一部PCサイトにあって携帯サイトにないページが存在しています。そのページだけはPCページを直接閲覧させるようにしたいと思っています。

(例:対応する携帯用ページがない場合)
★PCサイト
http://●●●.com/directory2/file1.php

↓携帯電話からのアクセスを振り分けない

★PCサイト
http://●●●.com/directory2/file1.php

その他、実現にあたりアドバイスなどございましたら教えてください。
よろしくお願いいたします。

補足
kizou0さん

ありがとうございます!
何とか振り分けることができました。

ただ、URLが[http://●●●.com/directory/file.php]などの場合は転送されるのですが、[http://●●●.com/directory/]のように、[/]で終わる場合はうまく転送されません。

ほかの記述が必要なのでしょうか?

違反報告

ベストアンサーに選ばれた回答

kizou0さん

携帯ページが存在している場合のPC側のphpファイル上部に、

------------------------------------------------------

$mobi = 'http://mobile.ドメイン.com'.$_SERVER["PHP_SELF"];
$agent = $_SERVER["HTTP_USER_AGENT"];

switch(1){
case (preg_match("/^(DoCoMo\/1|DoCoMo\/2)\.0/i", $agent)): $UA = 'docomo';break;
case (preg_match("/^(Softbank|J\-PHONE|Vodafone|MOT\-[CV]|Vemulator)/i", $agent)): $UA = 'softbank';break;
case (preg_match("/(UP\.Browser|KDDI\-)/i", $agent)): $UA = 'au';break;
case (preg_match("/iPhone/i", $agent)) : $UA = 'iphone';break;
case (preg_match("/iPod/i", $agent)) : $UA = 'ipod';break;
case (preg_match("/(DDIPOCKET|WILLCOM)/i", $agent)) : $UA = 'willcom';break;
case (preg_match("/(PlayStation Portable)/i", $agent)) : $UA = 'psp';break;
case (preg_match("/(Nitro)/i", $agent)) : $UA = 'ds';break;
default : $UA = '';
}

if(!empty($UA)){
header ("Location:$mobi");
}

----------------------------------------------------

と差し込めば大丈夫だと思います。
もし各キャリア別にサイトを振り分けるようなら、最後のif文で切り替えてください。

■追記
>>ただ、URLが[http://●●●.com/directory/file.php]などの場合は転送されるのですが、[http://●●●.com/directory/]のように、[/]で終わる場合はうまく転送されません。

そのディレクトリにアクセスした場合に読み込まれるファイルに上記コードは入っていますか?
※読み込まれるファイルがhtmlならphpに変えて上記コードを埋め込んでください。

  • 違反報告
  • 編集日時:2009/10/23 20:55:32
  • 回答日時:2009/10/21 21:42:43

この質問は投票によってベストアンサーが選ばれました!

この質問・回答は役に立ちましたか?
役に立った!

お役立ち度:お役立ち度 0点(5点満点中)0人が役に立つと評価しています。

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。

お客様自身の責任と判断で、ご利用ください。

ただいまの回答者

00時41分現在

4087
人が回答!!

1時間以内に8,166件の回答が寄せられています。

>>回答ひろばに行く