• ベストアンサー

ホームページに来た人を携帯用とPC用振り分けるやり方

PC用にホームページを作ったのですが、携帯でも見れるようにしたくなりました。 それで振り分けるやり方をいろいろ探しているのですが、いろいろあってどれがよいのかわかりません。 一般的によく使われている方法はどういったやり方でしょうか? 私が特に重視したいのは、 トップの読み込みが重くならないことと、 トップのアドレス変更はなしです。 http://tech.bayashi.net/pdmemo/pckt.html このサイトの方法がいまのところ一番よさそうですが、まだ試してません。 重くならないか心配です。重くなかったら問題ありません。 他に、オススメのやり方が書かれているサイトなど、ありましたら教えてほしいです。お願いします。 CGI,PHPやSSIは使えるサーバーです 

  • miku2
  • お礼率88% (45/51)
  • CGI
  • 回答数5
  • ありがとう数4

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

  • ベストアンサー
  • taseki
  • ベストアンサー率66% (155/233)
回答No.5

> mod_rewriteっていうのはどういうものなんでしょう。 振り分け処理を、CGIスクリプトなどを使わず、サーバー(Apache)自信にやらせてしまう、というように考えるといいと思います。 mod_rewriteは大変強力な機能で、「URL を操作するためのスイス製のアーミーナイフ」とマニュアルに書いてあるほどです。サーバーが自分で処理するので、他に何も用意する必要はなく、そしてもちろん効率がよく速いです。 たとえばhtaccessに以下のように書くだけです。 ※かなりいい加減に書いたものです…。 ※携帯用のページが「http://~/mobile/」と仮定。 RewriteEngine on RewriteCond %{HTTP_USER_AGENT} ^DoCoMo.* [NC,OR] ~~~ RewriteRule !^/mobile/.*$ /mobile/ [L] このhtaccessを置くと、端末の名前(USER AGENT)に「DoCoMo」など携帯を示すものが含まれていたら、「http://~/mobile/」に飛ばします。また、たとえば用意したCGIスクリプトなどではなく、つまりトップページにアクセスせず、いきなり ~/dialy.html なんかに直接アクセスされてしまっても対応できます。 (USER AGENTではなく、ホストがdocomo.ne.jp、などでチェックしたほうが確実かもしれません。) 多機能であるゆえ確かにマニュアルなどは長くて難しいですね。 とりあえず今検索してみて見つかった実例の載ったページは、 http://zenryaku.com/archives/000032.html http://ryus.s21.xrea.com/ryus.xrea.jp/stationery/var http://cyberwonk.org/ken/blog/archives/200404/000584.html http://tedious.blogdns.net/log/eid731.html http://tech.bayashi.net/svr/doc/apache/mod_rewrite.html しかしANo.4の方がおっしゃるようにサーバーが対応している必要があるので、まずはその点を確認してください。 mod_rewriteが使えない場合、index.cgiでリダイレクトさせるのが最善だと思います。 質問文で紹介されている方法は、CGIスクリプトがアクセスしてきた端末を判別して、携帯なら携帯用データを、PCならPC用データを書き出す、という方法です。 で、それをSSIでindex.htmlに埋め込んでいます。おそらく見かけ上index.htmlであるように見せるためと思いますが、下にも書きましたが、わざわざSSIにする意味はないと思います。その理由はANo.4の方も書かれていますが、index.htmlではなくても別にURLには影響しません。というかむしろ、それをするためにhtaccessを使えば良いだけの話ですから。 まとめると、とりあえず今出ている方法は次の4つです。 1.mod_rewriteを使う 2.スクリプトが判別して各データを出力する 3.スクリプトが判別して各データを出力する、それをSSIにてindex.htmlに見せかける 4.スクリプトが判別して各ページにジャンプさせる 1が使えればそれが最善なのは言うまでもありません。 3は実質2ですから、3は無意味だと思います。 では、1が使えない場合、2か4どちらが良いか?、ということになりますが、少しでも軽くしたい、効率のよさ、手軽である、更新などのメンテ性、判別処理を毎回動作させなくて良い、などを考えれば4だと思います。 また用意するスクリプトもはるかに簡単なものですみますし。 繰り返しになってしまいますが、いずれの場合も告知するURLには影響しません。

miku2
質問者

お礼

mod_rewrite 意味がわかりました。 これを設定できたら一番いいですね! >振り分け処理を、CGIスクリプトなどを使わず、サーバー(Apache)自信にやらせてしまう、というように考えるといいと思います。 という考え方を書いていただいたのがわかりやすかったです。 SSIにてindex.htmlに見せかけるっていうのはスマートじゃないなっていうのもわかりました。 丁寧に教えていただいてありがとうございました。大変勉強になりました。 まずはmod_rewriteでやってみようと思います。 

その他の回答 (4)

  • Katsu1030
  • ベストアンサー率59% (19/32)
回答No.4

 #2です。  現在のリンクは変える必要はないでしょう。  というのは、既にPCからのアクセスで有ることが確実だからです。  あと、mod_rewriteはサーバ側でインストールされるべきモジュールなので、入っていれば使えますが入ってなければ使用出来ません。(サーバ管理者に導入を依頼しなくてはいけません。)  方法論ですが、 ・振り分け用index.cgiを準備する。 ・.htaccessファイルで、ファイル名省略時のデフォルトファイル名をindex.cgiに変更する。  となります。  処理の流れは、 1)index.htmlを付けないアクセス  →振り分けCGI(index.cgi)で処理   →携帯ならば携帯用ページへリダイレクト(転送)   →PCからなら現在のPCページへリダイレクト 2)index.htmlを直接指定したアクセス  →振り分けせずそのまま表示(現在のまま)  と言った感じだと不用意に振り分け処理が走ることはありません。  念のため、携帯用ページは別階層にあった方が無難でしょう。

miku2
質問者

お礼

mod_rewriteがサーバーにインストールされてなかった場合、この方法でやってみようと思います。 不用意に振り分け処理が走ることがないというのが、いいと思いました。 いろいろと教えていただいて助かりました。ありがとうございます。

  • taseki
  • ベストアンサー率66% (155/233)
回答No.3

紹介されている方法は、特に重くなるほどではないと思います。 ただ、この方法、あまりスマートではないように思います。 なぜなら、「pckt.cgi」というのを「index.cgi」というファイル名にしても同じことのように思えます。無駄にSSIを使っているだけのような…。 mod_rewriteが使えれば、プログラムを何も使わずにhtaccessだけで携帯を振り分けられるので、最もスマートかと。 そうでなければ、メンテなど更新しやすさや軽さを追及するなら、素直にリダイレクトを使うとか。 いずれの場合もリダイレクトを使うのは賛否両論ありますが、リダイレクトを使うと、携帯の人は携帯用のページを、PCの人はPC用のページをブックマークしてくれるので、いちいち毎回振り分ける必要がなくなり、結果(サーバーにとっても見る人にとっても)軽くなる、という利点もありますね。 もちろん紹介するURLは同じですから、その点も気にする必要はありません。 あとは考え方次第だと思いますが。

miku2
質問者

補足

ホームページの他の所に、CGIを設置したら重くなったので、CGIをつかえば重くなると、つい思ってしまいます。あと、index.cgiを使って重くなったという記事を見たことがあって、心配になってたんです。 少しでも軽い方法があったらそっちがいいです。 mod_rewriteっていうのはどういうものなんでしょう。最もスマートと言われたので気になりました。 それで検索してみたんですが、なんだか難しいサイトばかりにたどりついて、具体例が見つけられず、よくわかりませんでした。 申し訳ないですが、mod_rewriteを使った、携帯とPCの振り分け方の具体例がのっているサイトがあったら教えていただきたいです。 リダイレクトも検討してみます。

  • Katsu1030
  • ベストアンサー率59% (19/32)
回答No.2

 こんにちわ。  「USER_AGENT 振り分け」で検索すれば色々でてくると思います。 例) Google⇒ http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLD,GGLD:2005-15,GGLD:ja&q=USER%5FAGENT+%E6%8C%AF%E3%82%8A%E5%88%86%E3%81%91  URLを変更したくないとの事ですが、現在のURLは「.html」までつけていますか?  そうではなく、「/」で終わっているページであればURLを変更せずに振り分けCGIを仕込むことは可能です。  ご記載のページのSSI利用の場合でも、数万PV/日とかではない限りはですが特に気にするほどの負荷は掛からないと思います。

miku2
質問者

補足

こんにちは。 USER_AGENT 振り分けで検索してみました。 いろいろ出てきました。ありがとうございます。 /で終わってるページです。でも、他のページからindex.htmlにリンク設定してあるので、なるべく変えたくないなと思ってたんですが、index.cgiにしたほうが負担が少なくなるのであれば、それも考えています。 気にするほどではないのならいいのですが、index.cgiにすると重くなったという記事をみかけたので、気になっていました。

  • hiroaki_0
  • ベストアンサー率53% (131/245)
回答No.1

お使いのサーバー絵動かせるなら、特に問題ないんじゃないでしょうか? これで重いようなら、サーバーに問題ありかも? 人によってはperlよりPHPの方が軽いという人もいますが・・・

miku2
質問者

お礼

考えていただいてありがとうございました

関連するQ&A

  • ホームページPC/携帯自動振り分け

    クライアントのホームページを作成しておりますが、 某レンタルサーバ・独自ドメインでPC用HP運営中です。 携帯用サイトも作り、同アドレス「www.○○○.com」で自動振り分けしたいと思います。 PC用のトップページは「index.html」のままにしたいのですが、 当初、phpにて行おうと取り組みましたが、 サーバ側の.htaccessの規制により indexファイルの順位を変えることが出来ないようで、 (.htaccessを書き換えたらエラーに)一度断念しました。 何か良い方法(php以外でも)はないでしょうか? ■.htaccess 利用可能なディレクティブはAuthConfigとLimitのみ ■indexファイルの優先順位 index.html/index.htm/index.cgi/index.php/index.shtml/index.wml/index.hdml  ■php、perl、CGI使用可能 ◎希望条件・・PC用のトップページは「index.html」 以上、宜しくお願いいたします。

  • ホームページの作成について

    上場会社のホームページを外部に委託して制作を考えております。 その中でCGIやSSIを使用して入力フォームの作成を考えておりますが、セキュリティーの関係で悩んでおります。 現在、入力フォームはありませんが、自社サーバーで公開しております。CGIやSSIを使用して入力フォームを作成した場合のサーバーは、ホスティングサーバーなどを利用して分けた方がよろしいのでしょうか? 方法は、次のとおり考えております。 1.すべて自社サーバーで公開する。 2.CGIやSSIを使用したページのみをホスティングサーバーで公開する。 3.すべてホスティングサーバーで公開する。 一般的には、どのような形をとっているものなのでしょうか? お教え願います!

    • ベストアンサー
    • CGI
  • ホームページを携帯用に自動変換する方法

    PC用ホームページを作成したのですが、携帯電話でアクセスした時に 自動的に携帯用に飛ばす方法はありませんか? 調べたところ、phpではできるみたいなのですが、 あいにくレンタルしているサーバーがphpに対応していません。。 CGIでできればいいなとかんがえているのですが。。 携帯用のサイトは作ってありますので、そこに自動的に飛ぶ様になるのが希望です。 宜しくお願い致します。

    • ベストアンサー
    • CGI
  • SSIが使えないサーバーで、JavaScriptで共通項目の一元管理をするには

    ボランティアで、とある零細企業のホームページを管理しています。 会社の経費削減により、SSI/PHP/CGIが使えないサーバへ、サイトを引っ越さなくてはならなくなってしまいました。サイトのページ数は100ページを越えています。 今までのサーバではSSIが使えたので、ヘッダー、フッター、共通メニュー部分をSSIで管理していましたが、引っ越し先ではSSIもPHPも使用することが出来ないので困っています。 そこで質問なのですが、JavaScriptでSSIのように共通メニューを一元管理するにはどのようにすればよいのでしょうか?JavaScriptの初心者でも分かるように、簡単に説明しているページなどがありましたら、教えてください。 また、JavaScript以外でも、一元管理する何か良い方法があったら教えてください。 よろしくお願いいたします。

  • レンタルサーバ、ホームページスペース

    オススメのレンタルサーバ、ホームページスペース、はありますか? <条件> 料金:無料 登録:簡単 SSI:必須 CGI:できれば利用可 .htaccess:認証は必要 個人系ならそれなりにあるみたいですけど、なんか不安でして。 何かオススメところはありませんか? 有料系を推奨するのは勘弁してください。

  • FC2の無料レンタルホームページについて

    FC2の無料レンタルホームページについて FC2ではCGIやPHPなどは利用出来ないという事ですが他サイト(別のサーバー)で使用中のPHPやCGIをFC2のホームページからリンクさせることはできますか? 他サイト(別のサーバー)の管理者は私です。

  • ホームページの調査でおすすめのアクセス解析は?

    お世話になります。 自分のホームページに訪問していただいた方のアクセス解析をしたいと思っています。 CGIを設置する方法と無料レンタルの方法があると思いますが、どちらもおすすめがあったら教えてください。 よろしくお願い致します。 ちなみにSSIもCGIも使えるサーバーです。 よろしくお願い致します。

    • ベストアンサー
    • HTML
  • PHPをローカルでテストするには

    サーバソフトも なにも入れてないWinXP Home SP2です PHPをロールでテストするには何を入れたらいいですか? http://tech.bayashi.net/pdmemo/localsvr.html をみると できそうですけど メジャーな方法というか、信頼できるフリーソフトはどういうものでしょうか? やっぱり↑のですか?

    • ベストアンサー
    • PHP
  • 全自動ホームページ

    私は今ホームページをつくっているんですが、以下のサイトのように更新された情報を自分のホームページに表示させたいのです。 http://www.omegadragon.com/pchunter/ ニュースのところやソフトウエアのアップデートのところを上記のサイトのように表示させるにはどうしたらいいのでしょうか? RSSに非対応のページから上記のサイト様は情報を取得して表示しています。またソフトウェアのところを3日分のみ表示みたくしたいのです。またそれぞれの情報の加工方法なども知りたいです。 お分かりになれる方どうかお力を貸してください。 環境 PHPとCGIとMySQLが実行できる環境があります。SSIはありません。

  • suEXECとパーミッションの関係がわかりません

    ホームページ作成初心者です。 (A) suEXECについて http://www.aconus.com/~oyaji/www/apache_linux_suexec.htm では、 ----------------------- なお、CGI 関係以外のファイル( HTML や GIF 等)の扱いは、従来どおり "644" 等としないと見えません。suEXEC はあくまで CGI や SSI の実行に関してのみ機能するものだからです。 ----------------------- 一方 http://tech.bayashi.net/pdmemo/permission.html では、 ----------------------- 拡張子が .html などの HTML ファイル ==> 600 ----------------------- となっています。 600では一般のサイト訪問者がread出来ない様に思えるのですが、問題ないのでしょうか? suEXEC設定がされているサーバーでは、各拡張子のパーミッションはどのように設定すれば良いのか教えてください。 (B) http://tech.bayashi.net/pdmemo/permission.html の ------------------------------- ■UNIX + Apache サーバで nobody権限の場合 UNIXのApacheは通常 nobody権限で実行され ■UNIX + Apache サーバで SuExec環境の場合 SuExec環境では、Apacheがユーザ(オーナ)権限で実行されます。 ------------------------------- 上記のApacheの nobody権限、ユーザ権限、オーナ権限 というのは FTPソフトでパーミッションを設定するときの オーナー権限、グループ権限、ユーザ権限 とは全く関係のない別物なのでしょうか? 特にnobody権限とは何でしょうか? -------------------- ファイルの読み書きもnobody権限しかありません。なので、パーミッションでも第三者に対する許可が必要です -------------------- ↑が何を言っているのか理解できません。 (A)(B)について教えてください。

    • ベストアンサー
    • HTML

専門家に質問してみよう