ZAPAnet総合情報局 > ZAPAブログ2.0 > 日本レジストリサービスの携帯・PC併用解説が…

日本レジストリサービスの携帯・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サイトで別のアドレスを使っていませんか?この方法をシステム管理者に伝えれば、簡単に同じアドレスで運用できます。
「簡単」の言葉に釣られた経営者から、この方法を伝えられたシステム管理者がいたとしたら、ちょっとかわいそうです…。