PC用にホームページを作ったのですが、携帯でも見れるようにしたくなりました。
それで振り分けるやり方をいろいろ探しているのですが、いろいろあってどれがよいのかわかりません。
一般的によく使われている方法はどういったやり方でしょうか?
私が特に重視したいのは、
トップの読み込みが重くならないことと、
トップのアドレス変更はなしです。
http://tech.bayashi.net/pdmemo/pckt.html
このサイトの方法がいまのところ一番よさそうですが、まだ試してません。
重くならないか心配です。重くなかったら問題ありません。
他に、オススメのやり方が書かれているサイトなど、ありましたら教えてほしいです。お願いします。
CGI,PHPやSSIは使えるサーバーです
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 …
http://cyberwonk.org/ken/blog/archives/200404/00 …
http://tedious.blogdns.net/log/eid731.html
http://tech.bayashi.net/svr/doc/apache/mod_rewri …
しかし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には影響しません。
mod_rewrite 意味がわかりました。
これを設定できたら一番いいですね!
>振り分け処理を、CGIスクリプトなどを使わず、サーバー(Apache)自信にやらせてしまう、というように考えるといいと思います。
という考え方を書いていただいたのがわかりやすかったです。
SSIにてindex.htmlに見せかけるっていうのはスマートじゃないなっていうのもわかりました。
丁寧に教えていただいてありがとうございました。大変勉強になりました。
まずはmod_rewriteでやってみようと思います。
No.4
- 回答日時:
#2です。
現在のリンクは変える必要はないでしょう。
というのは、既にPCからのアクセスで有ることが確実だからです。
あと、mod_rewriteはサーバ側でインストールされるべきモジュールなので、入っていれば使えますが入ってなければ使用出来ません。(サーバ管理者に導入を依頼しなくてはいけません。)
方法論ですが、
・振り分け用index.cgiを準備する。
・.htaccessファイルで、ファイル名省略時のデフォルトファイル名をindex.cgiに変更する。
となります。
処理の流れは、
1)index.htmlを付けないアクセス
→振り分けCGI(index.cgi)で処理
→携帯ならば携帯用ページへリダイレクト(転送)
→PCからなら現在のPCページへリダイレクト
2)index.htmlを直接指定したアクセス
→振り分けせずそのまま表示(現在のまま)
と言った感じだと不用意に振り分け処理が走ることはありません。
念のため、携帯用ページは別階層にあった方が無難でしょう。
mod_rewriteがサーバーにインストールされてなかった場合、この方法でやってみようと思います。
不用意に振り分け処理が走ることがないというのが、いいと思いました。
いろいろと教えていただいて助かりました。ありがとうございます。
No.3
- 回答日時:
紹介されている方法は、特に重くなるほどではないと思います。
ただ、この方法、あまりスマートではないように思います。
なぜなら、「pckt.cgi」というのを「index.cgi」というファイル名にしても同じことのように思えます。無駄にSSIを使っているだけのような…。
mod_rewriteが使えれば、プログラムを何も使わずにhtaccessだけで携帯を振り分けられるので、最もスマートかと。
そうでなければ、メンテなど更新しやすさや軽さを追及するなら、素直にリダイレクトを使うとか。
いずれの場合もリダイレクトを使うのは賛否両論ありますが、リダイレクトを使うと、携帯の人は携帯用のページを、PCの人はPC用のページをブックマークしてくれるので、いちいち毎回振り分ける必要がなくなり、結果(サーバーにとっても見る人にとっても)軽くなる、という利点もありますね。
もちろん紹介するURLは同じですから、その点も気にする必要はありません。
あとは考え方次第だと思いますが。
この回答への補足
ホームページの他の所に、CGIを設置したら重くなったので、CGIをつかえば重くなると、つい思ってしまいます。あと、index.cgiを使って重くなったという記事を見たことがあって、心配になってたんです。
少しでも軽い方法があったらそっちがいいです。
mod_rewriteっていうのはどういうものなんでしょう。最もスマートと言われたので気になりました。
それで検索してみたんですが、なんだか難しいサイトばかりにたどりついて、具体例が見つけられず、よくわかりませんでした。
申し訳ないですが、mod_rewriteを使った、携帯とPCの振り分け方の具体例がのっているサイトがあったら教えていただきたいです。
リダイレクトも検討してみます。
No.2
- 回答日時:
こんにちわ。
「USER_AGENT 振り分け」で検索すれば色々でてくると思います。
例) Google⇒
http://www.google.co.jp/search?sourceid=navclien …
URLを変更したくないとの事ですが、現在のURLは「.html」までつけていますか?
そうではなく、「/」で終わっているページであればURLを変更せずに振り分けCGIを仕込むことは可能です。
ご記載のページのSSI利用の場合でも、数万PV/日とかではない限りはですが特に気にするほどの負荷は掛からないと思います。
この回答への補足
こんにちは。
USER_AGENT 振り分けで検索してみました。
いろいろ出てきました。ありがとうございます。
/で終わってるページです。でも、他のページからindex.htmlにリンク設定してあるので、なるべく変えたくないなと思ってたんですが、index.cgiにしたほうが負担が少なくなるのであれば、それも考えています。
気にするほどではないのならいいのですが、index.cgiにすると重くなったという記事をみかけたので、気になっていました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SoftBank(ソフトバンク) 楽天からソフトバンクに携帯を変えたが高すぎる どうすべきか? 6 2022/04/22 17:57
- サーバー Laravelをレンタルサーバーにインストールするにはどうすればいいですか? 2 2022/06/29 10:17
- ASP・SaaS イントラネットを構築したい 2 2022/04/24 11:08
- その他(セキュリティ) IDと暗証番号・パスワードの管理の画期的かつ簡単便利な方法を考案した。他人に検証してもらう方法は? 5 2023/02/08 08:49
- Bluetooth・テザリング 楽天モバイルをご利用されている方へ 3 2023/04/28 16:06
- タブレット 中古iPadか格安タブレットか 2 2022/08/23 15:40
- その他(IT・Webサービス) デスクトップPCでyoutubeのサイトへ接続しようとしても「インターネットに接続してください」と表 3 2022/10/12 23:41
- Ameba(アメーバブログ) アメブロは、HTMLのタグの入力を許さないブログ・サイトですか? 1 2023/06/18 18:48
- ホームページ作成・プログラミング アメーバ・ブログは"HTMLタグ"を許可してないのですか? 2 2023/06/17 21:08
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで集計したい。
-
apacheでPerl CGIが作動せず、5...
-
POSTメソッドの最大容量について
-
ホームページにメールフォーム...
-
ホームページでCGIのフォームを...
-
CGIって何ですか?簡潔に教えて...
-
cgiの注釈が出来ない
-
CGI.pmはもう古い!?
-
フォームを再送信しますか?
-
入力フォーム(電話番号)
-
プロバイダのスピードは、maps...
-
3DCG
-
cgi アクセス制限 エラー
-
CGIの記述について教えてくださ...
-
CGIの設置が分かりません・・・
-
ホームページにCGIを設置したの...
-
ホームページにCGIを設置したの...
-
サーバーのエラーでおしえてく...
-
ホームページの事でおしえてく...
-
さくらサーバーにcgiフォームを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
第1のPC(192.168.0.1)の/var/ww...
-
表示画面が真っ白になる場合、...
-
SSIを呼び出した元ファイルの名...
-
携帯サイトのキャリア判別
-
htmlにアクセスと同時に、あるC...
-
ログインCGI設置での500エラー
-
アクセスカウンター(counter.cg...
-
private_htmlについて
-
public_html外でCGIやPHPを動か...
-
apache2でforbiddenになってしまう
-
ステップサーバーでの.htaccess...
-
1-man.netでメールフォームの設...
-
IISのSSIの設定について
-
CGIの作成方法
-
○.datから情報を取り出し、○.ht...
-
自社サーバー異常発生。CGIがポ...
-
さくらインターネットのCGIの設...
-
INDXの振り分けでソフトバンク
-
.htaccessを用いて.cgiを.html...
-
EXCELファイルに誰がアクセスし...
おすすめ情報