日本レジストリサービスの携帯・PC併用解説が…
2008年02月28日 プログラミングTIPS
日本に割り当てられたドメイン名「.jp」のレジストリ業務を行う日本レジストリサービス(JPRS)。
そのJPRSサイト内の「JPドメイン名の活用方法」に、「携帯・PC併用」として、以下の方法が掲載されていました。
携帯・PC併用この文章の中で、個人的に気になった部分がいくつかありました。
あなたの会社はケータイとPCのWebサイトで別のアドレスを使っていませんか?この方法をシステム管理者に伝えれば、簡単に同じアドレスで運用できます。
方法としては、ユーザのブラウザが送ってくる名前で判別しますが、PHPというHTML埋め込み型スクリプトを使います。普通のcgiでも同じような処理で可能です。
携帯・PC併用わかりにくい文章なのはさておき、たいした説明もなしに載っているソースコードは以下の通りでした。
あなたの会社はケータイとPCのWebサイトで別のアドレスを使っていませんか?この方法(この方法とは、下のソースコードのこと?)をシステム管理者に伝えれば(伝えるだけで本当にOK?)、簡単に同じアドレスで運用(簡単にできる?)できます。
方法としては、ユーザのブラウザが送ってくる名前(何の名前かわかりにくくない?)で判別しますが、PHPというHTML埋め込み型スクリプト(すでに他のスクリプトを使っている場合は?)を使います。普通のcgi(普通のcgiの定義は?)でも同じような処理(すごく曖昧では?)で可能です。
<? $header = getallheaders(); $agent = $header["User-Agent"] ; if (ereg("DoCoMo", $agent)) { /* iモード */ header("Location: https://example.jp/i/"); exit; } elseif (ereg("SoftBank", $agent) || ereg("Vodafone", $agent) || ereg("J-PHONE", $agent)) { /* Yahoo!ケータイ */ header("Location: https://example.jp/j/"); exit; } elseif (ereg("UP.Browser", $agent)) { /* EZweb */ header("Location: https://example.jp/e/"); exit; } else { /* PC等 */ header("Location: https://example.jp/pc/"); exit; } ?>
いきなりソースコードが載っていると、PHPファイルであることや、どこにどう記述すればよいのかわかりにくいですね。最悪、HTMLファイルに上のコードをペーストする人もでてきそうです。
1行目「<?」のショートタグは、PHPのセキュリティ上「<?php」とするべきです。
2行目「getallheaders()」は、エイリアス元の「apache_request_headers()」を使うべきです。
Yahoo!ケータイの振り分け先が「https://example.jp/j/」となっていてJ-PHONE向けなのは、これから対応するサイトとしてどうでしょうか。
そして、各ケータイキャリア向けの判定を行ったあと(この判定方法についての是非はともかく)、
header("Location: https://example.jp/***/");としています。
header関数で、別のアドレスにリダイレクトするのは、「簡単に同じアドレスで運用」できたことになるのでしょうか?アクセス先のトップページのアドレスだけは同じで、実際は別アドレスで運用しているように見えますが…。どこにこのソースコードを追加するのか、全く説明がないのは不親切です。
あなたの会社はケータイとPCのWebサイトで別のアドレスを使っていませんか?この方法をシステム管理者に伝えれば、簡単に同じアドレスで運用できます。「簡単」の言葉に釣られた経営者から、この方法を伝えられたシステム管理者がいたとしたら、ちょっとかわいそうです…。