”携帯振り分けPHP”で携帯サイトとパソコンサイトを振り分けています。

http://www.○○○.com/ にアクセスすると
ソフトバンクからアクセスすると、
http://www.○○○.com/softbank.html
パソコンからアクセスすると、
http://www.○○○.com/pc.html
に振り分けられています。それまでは良いのですが、


ソフトバンクから
http://www.○○○.com/pc.html にアクセスすると
http://www.○○○.com/pc.html のページが見れてしまうし!!

パソコンから
http://www.○○○.com/softbank.html にアクセスすると
http://www.○○○.com/softbank.html のページが見れてしまいます!!

ソフトバンクから、pcのページにアクセスしたなら、ソフトバンクのページを表示させたいし、
パソコンから、ソフトバンクのページにアクセスしても、pcのページが表示されるようにするにはどうすれば可能でしょうか?宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

>> PHPを利用せずに.htaccessを利用することで、、


>> ・携帯からパソコンのサイトアドレスにアクセスした場合に、アクセスしたのは携帯だから携帯のページへ!
>> ・パソコンから携帯のアドレスにアクセスした場合には、アクセスしたのはパソコンだからパソコンのページへ!
>> の設定も可能になるのでしょうか?

もちろん出来ます。PHPなどのスクリプトを使わないのでhtmlなど静的なページにも対応できます。

先回記載した例では、携帯でどのページにアクセスしてもその携帯会社別のページを表示する例でした。PCで携帯用のページをアクセスしたときにPC用のページに飛ばすにはもう少し設定の追加が必要ですが・・

設定方法はいろいろ有るので、「RewriteEngine 携帯 PC 振り分け」でググって見てください。豊富に事例が見つかるはずです
    • good
    • 0

静的なページを対象にしているしているので


PHPとは無関係の回答になってしまいますが

.htaccessの設定が可能なサーバーを利用しているのなら
mod_rewriteを使うのが楽でしょう。

以下のコードを .htaccessに記入しておけば、勝手に振り分けられます。PCの場合は、index.htmlが開きます。

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} DoCoMo
RewriteRule ^$ /docomo.html [R]

RewriteCond %{HTTP_USER_AGENT} J-PHONE
RewriteRule ^$ /softbank.html [R]

RewriteCond %{HTTP_USER_AGENT} Vodafone
RewriteRule ^$ /softbank.html [R]

RewriteCond %{HTTP_USER_AGENT} SoftBank
RewriteRule ^$ /softbank.html [R]

RewriteCond %{HTTP_USER_AGENT} UP.Browser
RewriteRule ^$ /au.html [R]

この回答への補足

アドバイスありがとうございます。PHPを利用することで振り分けまでは出来ているんです。
PHPを利用せずに.htaccessを利用することで、、
・携帯からパソコンのサイトアドレスにアクセスした場合に、アクセスしたのは携帯だから携帯のページへ!
・パソコンから携帯のアドレスにアクセスした場合には、アクセスしたのはパソコンだからパソコンのページへ!
の設定も可能になるのでしょうか?

補足日時:2009/05/23 20:57
    • good
    • 0

おっと、ひとつ書き忘れていました。



>pc.html →pc.php softbank.html→softbank.php au.html→au.php docomo.html→ docomo.php にしてindex.phpと一緒にサーバーに転送すれば良いと言うことですよね?

多分、想像されていることと当方の回答には大きな隔たりがあります。貴殿はHTMLとPHPの違いを理解されていないようですね。単純に拡張子を変えるだけで自動的に振り分けてくれるわけがないでしょう。すぐに楽な方向に考えるようでは、先が思いやられます。

仕方ないので正解を教えます。

まず、共通関数ライブラリとして「common.php」を作り、そのファイルにPCと携帯を振り分ける関数を自作します(check_ua()関数と名づけます)。
ここで、check_ua()関数は、PC,d,a,s,wのいずれかを戻り値にとると約束します。

次に、index.phpをこのように書き換えます。
<?php
include_once("common.php");
$ua = check_ua();
switch($ua){
case "PC":
// PC用のページをinclude
include("pc.html");
break;
case "d":
// docomoC用のページをinclude
include("docomo.html");
break;
case "a":
// au用のページをinclude
include("au.html");
break;
case "s":
// softbank用のページをinclude
include("softbank.html");
break;
case "w":
// Willcom用のページをinclude
include("willcom.html");
break;
}

最後に、これをテンプレートとして、他のファイルも同様に作ります。
    • good
    • 0
この回答へのお礼

細々とありがとうございます。検索したり調べ中ですが、今のところ意味がわかりません^^;理解して解決したら報告させて頂きます。

お礼日時:2009/05/23 22:27

>・携帯からパソコンのサイトアドレスにアクセスした場合に、アクセスしたのは携帯だから携帯のページへ!


>・パソコンから携帯のアドレスにアクセスした場合には、アクセスしたのはパソコンだからパソコンのページへ!
>というような振り分けまでしてくれる設定方法、またはプログラムはございますでしょうか?

ユーザエージェントの偽装を無視するレベルで、PCと3キャリア+Willcomの振り分け関数を自作しましたよ。ユーザエージェントの仕様さえ知っていればすぐに作れますので、がんばって作ってみてください。念のため、ヒントをいくつか与えておきます。
・$_SERVER['HTTP_USER_AGENT']を調べる!
・「HTTP_USER_AGENT 携帯」で検索!
・「携帯振り分けPHP」のindex.phpのソースを熟読!
    • good
    • 0

少し落ち着きましょうね。

ちなみに、「見れない」じゃなくて「見られない」が正しい表記です。いわゆる「ら抜き言葉」はこういう場では控えましょうね。

さて、本題。静的ファイルに直接アクセスしたら、携帯だろうがPCだろうがそのページが表示されるのは素人でもわかると思います。だから、全てのファイルをphpファイルにして、ユーザエージェントによる自動振り分けを共通関数で行えば解決します。

ちなみに、その「携帯振り分けPHP」というのは、「http://www.​○○○.com/」に接続したときにユーザエージェントで振り分ける仕組みだと思いますが、その正体は「index.php」ではないですか?これは、あくまでPCでも携帯でも同一URLが使えることを保障しているだけで、振り分けた先のことまで面倒は見てくれません。使う前に、ReadMeなどをよく読みましょう。

この回答への補足

丁寧なご回答ありがとうございます。

>全てのファイルをphpファイルにして、ユーザエージェントによる自動振り分けを共通関数で行えば解決します。
pc.html →pc.php softbank.html→softbank.php au.html→au.php docomo.html→ docomo.php にしてindex.phpと一緒にサーバーに転送すれば良いと言うことですよね?しかしながら結果は同じでした。

>振り分けた先のことまで面倒は見てくれません。
そのようですね!問題なく振り分けされています!

>静的ファイルに直接アクセスしたら、携帯だろうがPCだろうがそのページが表示されるのは素人でもわかると思います。
素人でもわかるような当然の現象でしたか(^^;
私が理想としているような・・・
・携帯からパソコンのサイトアドレスにアクセスした場合に、アクセスしたのは携帯だから携帯のページへ!
・パソコンから携帯のアドレスにアクセスした場合には、アクセスしたのはパソコンだからパソコンのページへ!
というような振り分けまでしてくれる設定方法、またはプログラムはございますでしょうか?

補足日時:2009/05/21 13:47
    • good
    • 0

>”携帯振り分けPHP”



がよくわからないですが
PEARにNet_UserAgent_Mobileっていうのがありますね
    • good
    • 0
この回答へのお礼

そのようなものもあるのですね。調べてみます!ありがとうございます!!

お礼日時:2009/05/21 13:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング