このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

User Agentによる表示ページの自動切り替え

発言者:Jiro
( Date Tuesday, September 05, 2000 11:40:26 )


I-mode対応のサイト構築をしたいと思っています。
User Agentによって表示するページを替えたいのですが、
方法を教えていただけませんか?
例えば、I-modeの場合はimode.htmlへ、NetscapeやExploreの
場合はindex.htmlといった具体です。I-modeのUser Agentは
Docomoだそうです。
なにかmidwareを使うんでしょうかね?
宜しくお願いします。

ゆうれい さんからのコメント
( Tuesday, September 05, 2000 16:47:45 )

今月号の日経マック読んだ?
AppleScriptによる振り分けってのなら確かあったはず。

山崎@ゼロ・オフィス さんからのコメント
( Tuesday, September 05, 2000 20:37:16 )

これは、サーバーに何を使っているかで変わると思います。
(JavaScript は、対応してるんでしたっけ?i-mode は...)

ちなみに、Macintosh / webster / netcloak の組み合わせなら

<HIDE>
<SHOW_CLIENT Docomo>
<!-- contents for i-mode -->
<HIDE>
<SHOW_CLIENT #Docomo>
<!-- contents for other -->

の様に簡単に出来ます。

確か、標準の SSI plug-in でも同じようなことが出来たはずです。

apache の場合は、XSSI が実装されていれば、条件分岐で同じようなことが
比較的簡単に、出来た様に思います。(あまり自信なし(^^;))

後は、SSI で CGI を呼び出すか、いきなり CGI へ飛ばせて切り分けるかでしょうか?

ゆうれい さんからのコメント
( Wednesday, September 06, 2000 10:37:49 )

お遊びでいいのなら
i-modeで1回目に長いアドレスを入れるのが面倒なので
転送URLサービスで(最近有料化されたものもあるのかな?)
短めのURLをとっておいて
日経マックに載っていたacgiに飛ばし
でユーザーエージェント名DoCoMoで分岐。

Jiro さんからのコメント
( Wednesday, September 06, 2000 10:41:46 )

ゆうれいさんと山崎@ゼロ・オフィスさん、有り難うございます。
山崎@ゼロ・オフィスにお聞きしたいのですが、
標準のSSI plug-inではどのコマンドを使用するのでしょうか?
echoコマンドでuser_agentが表示できるのは判るのですが、それ
からどうしたら良いのでしょうか?
宜しくお願いします。

山崎@ゼロ・オフィス さんからのコメント
( Wednesday, September 06, 2000 11:50:00 )

webster 3 以上をサーバーに使っているなら、以下で多分大丈夫だと思います。
(今時間がないので試してませんが...)

<!--#hide -->
<!--#show variable="http_user_agent" operator="contains" value="Docomo" -->

この部分は、i-mode のみで表示されます。

<!--#show -->
<!--#hide variable="http_user_agent" operator="contains" value="Docomo" -->

この部分は、i-mode 以外のブラウザで表示されます。

<!--#show -->



Jiro さんからのコメント
( Saturday, September 09, 2000 16:29:38 )

山崎@ゼロ・オフィスさんありがとうございました。
Webster3を使っていますのでSSIのplug-inでできました。
UserAgentでファイルを変えるよりhideとshowの方が簡単です。
なお、web settingのSSIはデフォルト設定でLatinになっているのを通常(文字変換しない)にし、かつ、マッピングで.htmlをSSIにしました。
今後も質問すると思いますが宜しくお願いします。Imodeのhtmlにはmailto:が使えないので田中先生のUVJmailerを使うことになりますので。