• 締切済み

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が組み込まれています。 よろしくお願いします

  • PHP
  • 回答数1
  • ありがとう数1

みんなの回答

  • tecinfo
  • ベストアンサー率52% (32/61)
回答No.1

こんにちは。 スクリプトは一見正しそうですね。 補足要求ですが、携帯電話でPCサイトにアクセスした場合のWebサーバのアクセスログを見せてください。 レスポンスコードを3xx(たぶん302)で返していて、携帯電話のブラウザがそれを正しく処理しない場合、携帯電話側の仕様をよく確認する必要があります。 一方、200あるいは別のレスポンスコードを返している場合は質問のスクリプトに何らかの問題がありそうです。 あと、 header("Location: ​http://mobile.abcdxxx.com/"); の後はHTMLを出力しても意味が無いので、 exit; を加えるか、出力制御関数で何も表示しないようにした方が良いかと思います。

makirongoo
質問者

お礼

解決しました サーバーにindex.htmlが残っており、metaタグでindex.php に飛ばしていたのですが、タグの記述が正確ではなく携帯電話では 認識できなかったためでした。 intex.htmlを削除しました。

makirongoo
質問者

補足

早速のご回答ありがとうございます。 まず、本文修正ですが 携帯サイトは  mobile.abcdxxx.com です。 おわかりだとは思いますが。 実は友人のサーバーで起きている事象の代理投稿です 当方もアクセスログを見ていない状況です。 もう少し調べてみます。

関連するQ&A

  • PHPを埋め込んだのに・・・

    <?php $UA = $_SERVER{'HTTP_USER_AGENT'}; if (substr_count($UA,"DoCoMo")) { header("Location: http://tyaku-uta.s140.xrea.com/imode/index.html"); } else if (substr_count($UA,"J-PHONE")) { header("Location: http://www.abcde.com/jphone.html"); } else if (substr_count($UA,"UP.Browser")) { header("Location: http://www.abcde.com/au.html"); } ?> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 8.0.0.0 for Windows"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> </HEAD> <BODY> ・ ・ ・ </BODY> </HTML> これで、UAで振り分けようと思ったのですが、うまく作動してくれません。是非、教えて頂けないでしょうか?

    • ベストアンサー
    • PHP
  • 携帯ユーザーのPHPによる振り分け

    WindowsXP dreamweaverCS3を使用 PHPの知識はまったくありません。 PCサイト「www.deri6mon.com」(PC用サイト)がすでにできており、 これをQRコードに変換してあります。 そのQRコードをユーザーがスマホと携帯のバーコードリーダーで変換し、 PCサイトにアクセスさせますが、携帯ユーザーは当然容量がオーバーしますので エラーでとまってしまいます。 そこで、別に携帯サイトを用意してPCサイトにアクセスしてきた携帯ユーザーを 携帯サイトに自動で振り分けたいと考えています。 PCサイトの最上部に下記を記述しました。 PHPを書き込んだファイルはhtml→phpに拡張子を変換してあります。 -----------------ここから------------------- <?php $page_m='http://www.deri6mon.com/mb/index.html'; $agent=$_SERVER['HTTP_USER_AGENT']; if (preg_match("/UP\.Browser\/[3-5]/",$agent) || preg_match("/J-PHONE\//",$agent) || preg_match("/DoCoMo\//",$agent) && !(preg_match("/(Win|Mac|Linux|FreeBSD|OS¥/2|Solaris)/i",$agent)) || preg_match("/UP.Browser/",$agent) || preg_match("/^Vodafone/",$agent) || preg_match("/^SoftBank/",$agent) || preg_match("/^MOT-/",$agent) || preg_match("/DDIPOCKET;/",$agent) || preg_match("/WILLCOM;/",$agent) || preg_match("/L-mode\/\//",$agent)) { header("Location: $page_m"); }else{ }//end if ?> -----------------ここまで---------------- しかしどうしても携帯でPCサイトが表示されてしまいます。 どこの設定(記述)をどうしたら良いのでしょうか。 因みにhttp://emu.mobile.goo.ne.jp/emu/emu.phpでPCサイトのアドレスを入れると携帯サイトのTESTが表示されるので記述は問題ないと思います。 教えてgooの過去Qを調べてみて気がついた記述が、私が使っているサーバーは 自動で挿入される広告があり「header Locationはエラーになる」というのが ありました。 これを回避するにはどうすればいいのでしょうか? PHPの知識が無いのでわかりやすく回答していただけるとたすかります。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • index.phpの役割について

    とても基本的で初心者すぎる質問だと思うのですが、と前置きをしておきます。 WordPressでのサイト作成の勉強をしています。 今まで、サイトを構成するファイルの中で最初に読まれるのは index.html(index.php)だと思っていました。 しかし、本を読みながら作成した練習用ページを作り終え、 今度は一から作ってみようと思いindex.phpの中身を <html> <head> <title>練習用のテスト</title> </head> <body> </body> </html> とひとまずまっさらにしてみました。 しかし、その状態でページを読み込んでみても表示が変わりません。 トップに出てくるページは練習用に作ったfront-page.phpの内容のようですが、 ではindex.phpは何をするものなのでしょうか? index.phpが最初に読まれるのであれば、まっさらな表示になると思ったのですが… 検索して調べてもみたのですが、あまりに基本的すぎることだからなのか 全然見つかりませんでした(探し方が判っていないせいかもしれません) index.phpとは何をするものなのか? 最初に読まれるわけではないのか? その存在と役割について、判る方おられましたらよろしくお願いいたします。 できれば初心者にも判りやすい説明を頂けると助かります。

  • phpのユーザーエージェントでの振り分け方法

    phpのユーザーエージェントでの振り分け方法 質問お願いします。 phpのユーザーエージェントでの振り分け方法を調べまして $ua = $_SERVER['HTTP_USER_AGENT']; if ((strpos($ua, 'Android') !== false) && (strpos($ua, 'Mobile') !== false) || (strpos($ua, 'iPhone') !== false) || (strpos($ua, 'Windows Phone') !== false)) { // スマートフォンからアクセスされた場合 header("Location: smartphone/index.html"); exit(); } elseif ((strpos($ua, 'Android') !== false) || (strpos($ua, 'iPad') !== false)) { // タブレットからアクセスされた場合 header("Location: tablet/index.html"); exit(); } elseif ((strpos($ua, 'DoCoMo') !== false) || (strpos($ua, 'KDDI') !== false) || (strpos($ua, 'SoftBank') !== false) || (strpos($ua, 'Vodafone') !== false) || (strpos($ua, 'J-PHONE') !== false)) { // 携帯からアクセスされた場合 header("Location: mobile/index.html"); exit(); } else { // その他(PC)からアクセスされた場合 header("Location: pc/index.html"); exit(); } とコピペで記入してスマホなどを振り分けています。 safari6とsafari7で見た時だけ header("Location: tablet/index.html"); に振り分けたいのですが、どうしたらよいでしょうか? 素人ですいません。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 携帯端末振り分けソースがソフトバンク端末でうまくいかない?

    携帯端末振り分けの以下のソースを利用していますが、ソフトバンクからフリーで配布されている「ウェブコンテンツビューア」というシュミレータを使いテストするとtype1~3いずれもデスクトップと判断されてしまいます。 「ウェブコンテンツビューア」は何か設定が必要なのでしょうか?、それともこれらのソースにはソフトバンク端末に対するソースのミスがあるのでしょうか? #type1 if($ua=~ /DoCoMo/){$user_agent = 'mobile';} elsif($ua=~ /J-PHONE\/2/){$user_agent = 'mobile';} elsif($ua=~ /J-PHONE\/[3-9]/){$user_agent = 'mobile';} elsif($ua=~ /Vodafone/){$user_agent = 'mobile';} elsif($ua=~ /SoftBank/){$user_agent = 'mobile';} elsif($ua=~ /ASTEL/){$user_agent = 'mobile';} elsif(index($ua,"UP.Browser")==0){$user_agent = 'mobile';} elsif(index($ua,"UP.Browser") > 0){$user_agent = 'mobile';} else{$user_agent = 'desktop';}#Mac and PC #type2 if($ua =~ /^(DoCoMo\/1)/i){$user_agent = 'mobile';}#DoCoMo elsif($ua =~ /^(DoCoMo\/2)/i){$user_agent = 'mobile';}#DoCoMo_FOMA elsif($ua =~ /^ASTEL/i){$user_agent = 'mobile';}#ASTEL elsif($ua =~ /^J\-PHONE/i){$user_agent = 'mobile';}#softbank elsif($ua =~ /^Vodafone/i){$user_agent = 'mobile';}#softbank elsif($ua =~ /^SoftBank/i){$user_agent = 'mobile';}#softbank elsif($ua =~ /^KDDI/i){$user_agent = 'mobile';}#au elsif($ua =~ /^UP\.Browser/i){$user_agent = 'mobile';}#au else{$user_agent = 'desktop';}#Mac and PC #type3 if ($ua =~ /DoCoMo|J-PHONE|Vodafone|Softbank|MOT-|L-mode|DDIPOCKET|PDXGW|ASTEL/ ) { $user_agent = 'mobile'; } else{$user_agent = 'desktop';}

    • ベストアンサー
    • Perl
  • UAによって表示リンクを変える

    携帯とPCでアクセスした場合に、ローテーションで表示されるバナーを変えたいと思っているのですが、どうしてもエラーになります。PHPはかなり初心者ですが、どなたか手助けをお願い致します。 ▼例 こんな感じにしていますがエラーになります。 <? $ua = $_SERVER["HTTP_USER_AGENT"]; if(ereg("DoCoMo",$ua)){ print "<?php include"http://server.com/ad_mobile.php";?>"; }else{ print "<?php include"http://server.com/ad_pc.php;?>"; }?>

    • ベストアンサー
    • PHP
  • PHPで特定のサイト上の文字列の出現個数を調べたい

    PHP初心者です。 PHPである特定のサイト上のindex.htmlのファイルを解析してその中にある、ファイルxxx.gif の個数を調べてその合計を出したいのですが なかなかうまくいきません。 以下自分なりに作ってみました。 <?php $file_name = "http://www.xxx.com/index.html"; $string1 = fread($file, filesize($file_name)); $string2 = "xxx.gif"; $count =substr_count($string1, string2); echo "<P>".$count; ?> どなたかご教授お願いいたします。

    • ベストアンサー
    • PHP
  • 携帯とPCの振り分け

    同じドメインにて携帯とPCの振り分けなのですが、htaccessにて振り分けたのですが、ブラウザに「振り分けがループしています」とでるのですが、 これはなぜでしょう? htaccessの中身の内容ですが、 DirectoryIndex index.php index.html index.htm これで読み込んだindex.phpの中身は <?php $agent = $_SERVER['HTTP_USER_AGENT']; if(preg_match("/^DoCoMo/i", $agent)){ header("Location: http://www.○○○○○.com/mobile/index.xhtml"); exit; }else if(preg_match("/^(J\-PHONE|Vodafone|MOT\-[CV]|SoftBank)/i", $agent)){ header("Location: http://www.○○○○○.com/mobile/index.xhtml"); exit; }else if(preg_match("/^KDDI\-/i", $agent) || preg_match("/UP\.Browser/i", $agent)){ header("Location: http://www.○○○○○.com/mobile/index.xhtml"); exit; }else{ header("Location: http://www.○○○○○.com/"); exit; } ?> サーバはlolipopでhtaccessのパーミッションは604で phpのパーミッションは700です。

    • 締切済み
    • CGI
  • phpでエージェントの振り分けがうまくいかない

    phpでエージェントの振り分けがうまくいかない 以下のようにmフォルダの中にindex.phpを以下の内容で設置し、同列でi,a,sフォルダを設け それぞれindex.htmlを設けました。しかし携帯でhttp://hoge.com/m で打つとサイトがみつかりませんになります。<?phpより上は空白、改行はありません。 振り分けがうまく機能しないのはなぜでしょうか? <?php $agent = $_SERVER['HTTP_USER_AGENT']; if(preg_match("/^DoCoMo/i", $agent)){ header("Location: http://hoge.com/m/i/index.html"); exit; }else if(preg_match("/^(J?-PHONE|Vodafone|MOT?-[CV]|SoftBank)/i", $agent)){ header("Location: http://hoge.com/m/s/index.html"); exit; }else if(preg_match("/^KDDI?-/i", $agent) || preg_match("/UP?.Browser/i", $agent)){ header("Location: http://hoge.com/m/a/index.html"); exit; }else{ header("Location: http://hoge.com/index.php"); exit; } ?>

    • ベストアンサー
    • PHP
  • Googleモバイルにインデックスされません

    はじめまして。事象として具体的に説明しますと、Googleウェブマスターのサイトマップで 携帯用サイトマップを登録しても、「携帯」ではなく、「ウェブ」でインデックス登録されてしまっていて 困っています。 携帯(ガラケー)向けサイトを運営の方で、同様の事象や、インデックスされない事象が 他のサイトなどでも多く見受けられますが、下記に記載させていただくとおり たいていのことは既に実施させていただいているところです。 考えられる原因や、他対応策などございましたらご教示いただけませんでしょうか。 「いまさらガラケーなんて・・・」というお話もありますが、わたくしの受け持つクライアント様のサイトで本当に困っております。 どうか、ご協力いただけますと大変助かります。どうぞよろしくお願い申し上げます。 ※何か対策検討に際して、必要な情報がございましたらご連絡いただけますと幸いです。 お答えできることであれば何でも情報提供させていただきたいと考えております。 ■すでに実施済みの対策 (1)携帯UA振り分け .htaccessによってPC、スマートフォン、携帯のUA(ユーザーエージェント)で振り分けています。 ※docomo、au、softbank 上記携帯や、Googlebot-Mobile、Y!J-SRDなどのUAでアクセスがあった場合は /m/***.htmlと、携帯用URLにリダイレクトさせています。 (2)XHTMLで書く&各キャリアでDOCTYPE宣言を変える XHTMLで各DOCTYPE宣言を変えた方が携帯ページとしてインデックスされるという話を聞き、 http://ke-tai.org/blog/2009/10/14/doctype/ 上記を参考にdocomo、au、softbankでDOCTYPE宣言を出しわけしています。 (3)Yahoo!モバイルなどの大手携帯検索サイトから外部リンクをもらう Yahoo!モバイルカテゴリ登録サイトです。他にもいろいろ携帯サイトからリンクされています。 (4)Googleサイトマップに登録 モバイル用のサイトマップを登録しています。 (5)robots.txtで、モバイルの階層である、/m/には、Googlebotを拒否し、 Googlebot-Mobileは受け入れる設定を施しています。 ※内容は下記 User-Agent: Googlebot Disallow: /m/ User-Agent: Googlebot-Mobile Allow: /m/ User-Agent: Slurp Disallow: /m/ User-Agent: Y!J-SRD/1.0 Allow: /m/ User-Agent: Y!J-MBS/1.0 Allow: /m/ (6)他、携帯でインデックスされるようなこと http://www.plusmb.jp/2009/04/03/3127.html 上記で書かれていることは実施しています。 以上です。何卒よろしくお願い申し上げます。

    • 締切済み
    • SEO

専門家に質問してみよう