- 締切済み
index.php
教えてください PCサイトのルートサーバーに以下のindex.phpを組み込みました。 <?php //User Agent 取得 $ua = $_SERVER['HTTP_USER_AGENT']; //Browser 判別 switch (true) { case (substr_count($ua,"Mozilla")): break; case (substr_count($ua,"Opera")): break; default: header("Location: http://mobile.abcdxxx.com/"); break; } ?> <html> <head> <title>PCです</title> </head> <body BgColor="#98FB98"> </body> </html> PCからアクセスした場合はHTMLが表示されますが、 携帯電話からアクセスした場合は mobile.abcdxxx.com に飛びません。 PCサイトは www.abcdxxx.com 携帯サイトは mobile.abcd.com です。 携帯電話で指定したurlは www.abcdxxx.com です また、携帯電話で www.abcdxxx.com/index.php と 指定するとちゃんとmobile.abcd.comが表示されます mobile.abcd.comにはindex.phpが組み込まれています。 よろしくお願いします
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- tecinfo
- ベストアンサー率52% (32/61)
こんにちは。 スクリプトは一見正しそうですね。 補足要求ですが、携帯電話でPCサイトにアクセスした場合のWebサーバのアクセスログを見せてください。 レスポンスコードを3xx(たぶん302)で返していて、携帯電話のブラウザがそれを正しく処理しない場合、携帯電話側の仕様をよく確認する必要があります。 一方、200あるいは別のレスポンスコードを返している場合は質問のスクリプトに何らかの問題がありそうです。 あと、 header("Location: http://mobile.abcdxxx.com/"); の後はHTMLを出力しても意味が無いので、 exit; を加えるか、出力制御関数で何も表示しないようにした方が良いかと思います。
お礼
解決しました サーバーにindex.htmlが残っており、metaタグでindex.php に飛ばしていたのですが、タグの記述が正確ではなく携帯電話では 認識できなかったためでした。 intex.htmlを削除しました。
補足
早速のご回答ありがとうございます。 まず、本文修正ですが 携帯サイトは mobile.abcdxxx.com です。 おわかりだとは思いますが。 実は友人のサーバーで起きている事象の代理投稿です 当方もアクセスログを見ていない状況です。 もう少し調べてみます。