PCサイトとスマフォ用サイトの表示切り替えについて

このQ&Aのポイント
  • PCサイトとスマホ用サイトの表示切り替えについて解説します。
  • 解説を参考に、リンクを押した時にPCサイトとスマホ用サイトの表示を切り替えたい。
  • ソースコードの設置やリダイレクトの処理についてよくわからないので、アドバイスをお願いします。
回答を見る
  • ベストアンサー

PCサイトとスマフォ用サイトの表示切り替えについて

http://seno.cc/archives/875 ここのサイトを参考に、リンクを押した時にPCサイトとスマフォ向けサイトの表示が、 切り替わる様にしたいのですが、うまくいきません。 解説のとおり <?php ?> のソースの一番上に <?php include_once( "lib/prerouting.php"); ?> を乗せ、index.php として保存しました。 自分のサーバーではサブディレクトリは設けてないので、 http://aimmy-aimmy.com/test2.html という風になります。 ただ解説によると 「設置は、ルート直下にlibというディレクトリを作り、このソースを放り込むだけです。 あとはリダイレクト元である/index.phpの一番上に <?php include_once( "lib/prerouting.php"); ?> を挿入してリダイレクトの作業は完了。」 とあるのですが、先に挙げた</php ?> を prerouting.php として保存するのか? それとも index.php として保存するのか?ここがよくわかりません。 一応その名前にしてlibフォルダの中に入れたのですが、反映されませんでした。 index.phpについては言及されてないのでわからないのですが、 質問本文の内容を実現するには、何が足りてないのでしょうか? 何かアドバイス頂ければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Toshi0230
  • ベストアンサー率51% (836/1635)
回答No.1

こういうのはある程度内容を理解して実施しないと痛い目にあいますよ~…と一応警告しておいて、と。 ソースが掲載されているPHPファイルは、改変せずにそのままサーバにアップしてよいです。 場所はどこでも良いですが、わからなければ"lib"というフォルダを作成してそこに放り込んでください。 あとは、PC向けのHTMLファイルである /index.html を index.php にリネームし、その先頭に <?php include_once( "lib/prerouting.php"); ?> の一文を放り込めばよいはず。 ただし、このPHPソースを見るとスマホに対しては/spn フォルダにリダイレクトするようなので、スマホ向けのコンテンツは/spn のフォルダ内に置いておく必要があります。 質問者さんの希望に沿う動きにするにはPHPのソースをいじる必要があるかと思いますが、PHPをちょっとかじっただけの私のスキルではすぐに回答はできませんので詳しい方に譲ります:-P

dontakosu5
質問者

お礼

なるほど、index.htmlをindex.phpにリネームするんでしたか!それだけだとまだダメでしたが、他所で知った (function(){ var ua = navigator.userAgent.toUpperCase(); var url = document.location.pathname; var spDir = '/sm/'; (ua.indexOf('IPHONE') != -1 || (ua.indexOf('ANDROID') != -1 && ua.indexOf('MOBILE') != -1))? isSP() : isPC(); function isSP(){ if(url.match(spDir)){ return false; }else{ location.href = spDir; } } function isPC(){ if(!url.match(spDir)){ return false; }else{ location.href = '/'; } } }()); ・・・というソースをuserAgent.js として保存し、 htmlのhead内に <!-- 切り替え用 --> <script type="text/javascript" src="userAgent.js"></script> というのを合わせて入れたところ、ちゃんとスマフォで見るとスマフォサイトに切り替わる様になりました! リネームとかしらなかったので、助かりました! ありがとうございます。

関連するQ&A

  • phpのincludeについて

    お世話になります。 Apache/2.2.3 PHP5.1.6 のレンタルサーバを利用しています。 httpdocs   |___lib   |  |___test.php   |___index.php という構造にしています。 -----test.php-------- <?php $a = 'sample'; ?> --------------------- -----index.php------- <?php include_once 'lib/test.php'; echo $a; ?> --------------------- 上記の場合、index.phpには 「sample」と表示されます。 -----index.php------- <?php include_once 'http://example.com/lib/test.php'; echo $a; ?> --------------------- 上記の場合、なぜか表示されません。 そこで「http://~~」はincludeできないのかなと思ったのですが -----test.php-------- <?php $a = 'sample'; echo $a; ?> --------------------- -----index.php------- <?php include_once 'http://example.com/lib/test.php'; ?> --------------------- とすると、なぜか「sample」と表示されました。 この結果から、includeはできているみたいです。 なんとか -----test.php-------- <?php $a = 'sample'; ?> --------------------- -----index.php------- <?php include_once 'http://example.com/lib/test.php'; echo $a; ?> --------------------- で「sample」と表示させたくて試行錯誤してみたのですが どうしても解決できません。 お力添えのほどお願いできればと思います。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • phpMyAdminを同一のIISの別サイトで表示することは可能?

    IIS6+MYSQL4.0.26+PHP5.1.2の環境下で、IISの「既定のWebサイト(ポート80)」では一般的な公開サイトとして使用して、それとは別に同一サーバー上に、phpMyAdmin(2.6.4-pl4)専用のサイトとしてポート:8080を立ち上げて、index.phpを起動してみたところ、 Warning: require_once(./libraries/common.lib.php) [function.require-once]: failed to open stream: No such file or directory in d:\Inetpub\wwwroot\index.php on line 40 となってしまいました。 この環境をwwwroot(ポート80)配下に持ってくると問題なく動作します。 8080の環境でphpinfo()は動作するので、環境設定は問題ないのかなと思っているのですが・・・。^^; 初めての構築なものでパタリと行き詰った状態です。 良きアドバイスを頂けると幸いです。よろしくお願いします。

  • .htaccessによりリダイレクトされるサイトの一部だけリダイレクト

    .htaccessによりリダイレクトされるサイトの一部だけリダイレクトされないようにできませんか? ドキュメントルートhome/直下の.htaccessには、下記の記述がされています。 RewriteEngine on RewriteRule .html$ http://www.sample.com/index.php ↑これは、拡張子が.htmlのページを表示しようとしたらwww.sample.com/index.php(TOPページ)へリダイレクトさせるという意味かと思うのですが、 home/webalizer 直下には、自動的に○○○.htmlファイルが生成されるようになっており、 このファイルを開こうとしても、TOPページにリダイレクトされてしまい、 FTP等でダウンロードしてからでないと内容を確認できません。 ルート直下の.htaccess は手を加えたくないので、 home/webalizer直下に、何らかの記述の.htaccessファイルを置くことにより、webalizer内の.htmlファイルだけはリダイレクトせずに開けるようにできないものでしょうか?

    • ベストアンサー
    • PHP
  • スマフォ、ガラケー、PCの振り分けについて

    同一ディレクトリ内にあるファイルの振り分けを行いたいです。 どのページにきても、それぞれアクセスのあったキャリアにあわせたページに飛ばしたいです。 同じ構成のディレクトリが3階層目まであるのですが、それぞれのディレクトリ内にて振り分けを行いたいです。 3階層目のディレクトリの数が多い為、htaccessにしろphpにしろ、同一の書き出しにて振り分けを行いたいので、各ディレクトリ内での相対パスによるページ呼び出し、もしくは文字列の付与を行いたいです。 index.php[PCページ] sp-index.php[スマフォページ] mb-index.php[ガラケーページ]  │  │  └index.php   sp-index.php   mb-index.php    │    │    ├index.php    │sp-index.php    │mb-index.php    │    │    ├index.php    │sp-index.php    │mb-index.php    │    │       ・       ・       ・       ・       ・       ・ また、下記文字列を付与、削除するhtaccessを全てのディレクトリ内にいれて振り分け自体は上手くいったのですが、 スマフォ、ガラケーでのサイト内でのリンクがうまくいきませんでした。 サイト内リンクは1階層目(トップページ)、2階層目(カテゴリーページ)、3階層目(プロダクトページ)をそれぞれリンクで繋いでいたのですが、スマフォ、ガラケーページのみ上手く動いてくれません。 スマフォページの場合、トップページからカテゴリーページへのリンクの記述を、下記2パターン試してみたのですがだめでした。 <a href="./category01/sp-index.php"> <a href="./category01/"> RewriteEngine On RewriteBase / # 1.No enter except MOBILE(sp-index.phpART) RewriteCond %{REQUEST_URI} ^/mb-index.php RewriteCond %{HTTP_USER_AGENT} ^.*(iPhone|iPod|Android).*$ RewriteRule ^mb-index.php(.*)$ sp-index.php$1 [R] # 2.No enter except MOBILE(PC) RewriteCond %{REQUEST_URI} ^/mb-index.php RewriteCond %{HTTP_USER_AGENT} !^(DoCoMo|J-PHONE|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank).*$ RewriteRule ^mb-index.php(.*)$ $1 [R] # 3.No enter except sp-index.phpART(MOBILE) RewriteCond %{REQUEST_URI} ^/sp-index.php RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|J-PHONE|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank).*$ RewriteRule ^sp-index.php(.*)$ mb-index.php$1 [R] # 4.No enter except sp-index.phpART(PC) RewriteCond %{REQUEST_URI} ^/sp-index.php RewriteCond %{HTTP_USER_AGENT} !^(DoCoMo|J-PHONE|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank|.*iPhone|.*iPod|.*Android).*$ RewriteRule ^sp-index.php(.*)$ $1 [R] # 5.No enter except PC(MOBILE) RewriteCond %{REQUEST_URI} !^/mb-index.php RewriteCond %{REQUEST_URI} !^/sp-index.php RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|J-PHONE|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank).*$ RewriteRule ^(.*)$ mb-index.php$1 [R] # 6.No enter except PC(sp-index.phpART) RewriteCond %{REQUEST_URI} !^/mb-index.php RewriteCond %{REQUEST_URI} !^/sp-index.php RewriteCond %{HTTP_USER_AGENT} ^.*(iPhone|iPod|Android).*$ RewriteRule ^(.*)$ sp-index.php$1 [R] サイト内リンクの問題をクリアーした、振り分け方法を教えて下さい。

  • URLの階層変更

    PHPアプリケーションを作成しているのですが、ログイン画面の階層が下記のように深くなってしまっています。 http://www.aaa.net/efile/webapps/login/index.php ディレクトリ構成をいじらずに、下記URLをアクセスしたら、上記URLのindex.phpを取り込みたいと考えています。ただし、ブラウザのURLも下記のままにしておきたいので、header()関数でリダイレクトするのは、NGです。また、index.phpを下記ディレクトリ直下において、includeしようとしましたが、内部変数にて相対パスを読みこんでいるので、NGでした。 http://www.aaa.net/ 何か良い方法がありましたら、ご教示の程、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPのページが真っ白に【初心者です】

    (ラビットサーバーの専用サーバーからVPSへ) サーバーの移動をしました。 すると、PHPのページが真っ白になり表示されません。 ソースを見ると、以下のように表示されました。 php.iniファイルをいろいろ弄ってみたんですが、 なおりませんで、お知恵を拝借したく書き込みました。 よろしくお願いします。 <? $dir = "../"; include_once('../lib/session.lib'); $main_dsp = './main.tpl'; include_once('./html.php'); ?>

    • 締切済み
    • PHP
  • htmlとphpで同じページを表示させたい

    index.htmlとindex.php、どちらをアクセスしても同じ表示(view.php)にしたくて index.phpには include_once './view.php'; を書いてみて、表示できましたが index.htmlでも同じようにview.phpを表示させることは可能ですか? 可能であれば(他にも方法があれば)、教えてください。

    • 締切済み
    • PHP
  • どんなディレクトリでもindex.phpへ飛ばす

    http://ドメイン/abc/ http://ドメイン/eee123/ http://ドメイン/xyz/ このようにドメイン直下でどんなディレクトリが指定されても index.phpに飛ばして処理できるようにしたいのですが、 一般的にはどのような方法が使われているのでしょうか。 とりあえず下のようなリダイレクトをやってみたのですが、 index.php用のcssが読み込めなくなってしまいます。 RewriteEngine on RewriteRule ^(.*)$ index.php [L] (おそらくcssもリダイレクトしてしまっている) レンタルサーバなのでapache設定は.htaccessには 書き込めますが、httpd.confには書き込めません。 ちなみに目的は指定されたディレクトリ名で データベースを検索するなどします。

  • php_value include_pathを無効

    php_value include_pathを、あるディレクトリ以下では、無効にしたいのですが、 どうすればよいでしょうか? ■前提 ・サイト全体は、「.htaccess」に「php_value include_path」を書いて制御 ■やりたいこと ・ある特定ディレクトリ「hoge」以下では、「php_value include_path」ではなく、 PHPに直接書いた「require_once './★★/●●';」を利用したい ・つまり、設定ファイル「.htaccess」に記述した中のある一部分(特定ディレクトリ以下)だけは、「PHPソースに記述」したincludeパスを使いたい ■試してみてダメだってこと ・「hoge」に「.htaccess」を設置し、空の「php_value include_path=""」と書いてみたけど、うまくいきませんでした

    • ベストアンサー
    • PHP
  • SMTP.phpについて

    openPNEでメール送信をやらせようとしたところ、 Warning: Mail_smtp::include_once(Net/SMTP.php) [function.Mail-smtp-include-once]: failed to open stream: No such file or directory in [openPNEディレクトリ]lib\include\Mail\smtp.php on line 207 というメッセージが表示されました。 調べてみたところ、PHPディレクトリ以下に当該ファイル(Net/SMTP.php)が存在しません。 どうやら追加しなければいけないようですが、入手先などが不明で困っております。 環境は、Windows2000Pro上でのPHP5.2.1です。 何卒よろしくお願い申し上げます。

    • ベストアンサー
    • PHP