- 締切済み
PCと携帯サイトの振分け後の表示アドレスについて
こんにちは。 私はPHPを利用して、同じアドレス(http://****.com)から携帯とPCを判別して区別しています。 しかし、PCからアクセスした場合は、表示が(http://****.com)となるのですが、携帯からアクセスすると(http://****.com/mobile)のようになってしまいます。 携帯からアクセスした場合でも(http://****.com)と表示させたいのですが、どのようにすればよいのでしょうか。 以前、質問した時は、一つのPHPファイルにPCと携帯二つ分の内容を書いて、どちらかを吐き出す処理を行えばよいとアドバイスをいただきましたが、私の携帯サイトはオリジナルで作成したものではなく、起業からレンタルしているものなのです。 (http://****.com/mobile)というアドレスが与えられるだけのものです。 ですから、自分のオリジナルPCサイトの内容に取り込む事が出来ません。 以下は私の振分けのやり方です。 http://blogn.hustle-user.com/e66.html こちらのサイトを参考にPHPで作成しています。 index.php(http://****.com/でまずここにアクセスします。) <?php $title="http://****.com/mobile"; $page_e='http://****.com/mobile'; $page_j='http://****.com/mobile'; $page_i='http://****.com/mobile'; (↑これら携帯のアドレスにリダイレクトさせてアドレス表示を(http://****.com)にしたいのです。) $i=$_SERVER['HTTP_USER_AGENT']; $pc='http://****.com/index.html'; (↑PCはこれで上手く(http://****.com)と表示されています。) require_once('data/furiwake.txt'); ?> furiwake.txt(上記のリンク先です) <?php //HDML記述のezweb端末? if (preg_match("/UP\.Browser\/[3-5]/",$i)) { header('Content-Type: text/x-hdml;charset=shift_jis'); echo('<hdml version="3.0" markable="TRUE" public="TRUE">'); echo('<nodisplay markable="TRUE" public="TRUE" title="'.$title.'">'); echo('<action type="ACCEPT" task="GO" dest="'.$page_e.'">'); echo('</nodisplay>'); echo('</hdml>'); exit(); } //SoftBank以前の端末? if (preg_match("/J-PHONE\//",$i)) { header("Location: $page_j"); exit(); } //iモード/EZウェブ次世代機/エアーH"フォンなどの携帯端末一般。 if (preg_match("/DoCoMo\//",$i) || preg_match("/Opera[s\/]/",$i) && !(preg_match("/(Win|Mac|Linux|FreeBSD|OS/2|Solaris)/i",$i)) || preg_match("/UP.Browser/",$i) || preg_match("/^Vodafone/",$i) || preg_match("/^SoftBank/",$i) || preg_match("/^MOT-/",$i) || preg_match("/DDIPOCKET;/",$i) || preg_match("/WILLCOM;/",$i) || preg_match("/L-mode\/\//",$i)) { header("Location: $page_i"); exit(); } else { require_once($pc); exit(); } ?> どなたかPHPに詳しい方、恐れ入りますが回答お願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- atoznt
- ベストアンサー率40% (74/182)
別ファイルに振り分けたら無理だと思います。 http://****.com/index.phpの中で、 if ezweb端末なら{ezweb用を表示} if J-PHONEなら{J-PHONE用を表示} ifiモードなどなら{i-mode互換用を表示} else (PC用を表示) という具合に同一ファイルの中で振り分けて表示すれば可能です。
補足
回答ありがとうございます。 ご回答頂いたとおりに下記のように変更してみましたがダメでした。PCと携帯の両方のアドレスが(http://****.com)とは表示されずに、長いファイル(http://****.com/index.html)やアドレス名('http://****.com/mobile)で表示されていまいます。 恐らく私がPHP等に対して初心者である事が原因だと思われます。もし、何か気付かれましたら再度ご意見お願い致します。 index.php <?php $title="タイトル"; $page_e='http://****.com/mobile(携帯用URL)'; $page_j='http://****.com/mobile(携帯用URL)'; $page_i='http://****.com/mobile(携帯用URL)'; $pc='http://****.com/index.html'; $i=$_SERVER['HTTP_USER_AGENT']; 以下振分け内容(略 ?>