低価格・高品質・最速のHTMLコーディングはクロノドライブへ

携帯電話のキャリアを判別し、キャリアごとにリンク先を振り分けるスクリプト

DoCoMo、au、SoftBankの主要3キャリアと、iPhoneやAndroid端末でアクセスした際、そのキャリアを判別し、キャリアごとにリンク先を振り分けるスクリプトです。Perl(CGI)とPHPの二種類をご用意しました。環境に合わせてご選択ください。

Perlの場合

01$agent = $ENV{'HTTP_USER_AGENT'};
02 
03if($agent =~ /iPhone/){
04    print "Location: iPhone用サイトのアドレス";
05    exit;
06}
07elseif($agent =~ /Android/){
08    print "Location: Android用サイトのアドレス";
09    exit;
10}
11elseif($agent =~ /DoCoMo/){
12    print "Location: DoCoMo用サイトのアドレス";
13    exit;
14}
15elseif($agent =~ /KDDI/){
16    print "Location: au用サイトのアドレス";
17    exit;
18}
19elseif($agent =~ /SoftBank/){
20    print "Location: SoftBank用サイトのアドレス";
21    exit;
22}
23else{
24    print "Location: PC用のアドレス";
25    exit;
26}

Vodafoneやauのやや古い機種など、過去のキャリアも対象に含める場合には、上記のスクリプトに、

01elseif($agent =~ /UP.Browser/){
02    print "Location: au用サイトのアドレス";
03    exit;
04}
05elseif($agent =~ /J-PHONE/){
06    print "Location: SoftBank用サイトのアドレス";
07    exit;
08}
09elseif($agent =~ /Vodafone/){
10    print "Location: SoftBank用サイトのアドレス";
11    exit;
12}

という記述を追加するとよいでしょう。

PHPの場合

01<?php
02$header = getallheaders();
03    $agent = $header["User-Agent"] ;
04    header( "HTTP/1.1 301 Moved Permanently" );
05    if(ereg("iPhone" , $agent)) {
06        header("Location: iPhone用サイトのアドレス");
07    exit;
08    } elseif (ereg("Android", $agent)) {
09        header("Location: Android用サイトのアドレス");
10        exit;
11    } elseif (ereg("DoCoMo", $agent)) {
12        header("Location: DoCoMo用サイトのアドレス");
13        exit;
14    } elseif (ereg("KDDI", $agent)) {
15        header("Location: au用サイトのアドレス");
16        exit;
17    } elseif (ereg("SoftBank", $agent)) {
18        header("Location: SoftBank用サイトのアドレス");
19        exit;
20    } else {
21        header("Location: PC用サイトのアドレス");
22        exit;
23    }
24?>

同様に、古いキャリアも対象に含める場合には、上記のスクリプトに、

1} elseif (ereg("UP.Browser", $agent)) {
2    header("Location: au用サイトのアドレス");
3    exit;
4} elseif (ereg("Vodafone", $agent)) {
5    header("Location: SoftBank用サイトのアドレス");
6    exit;
7} elseif (ereg("J-PHONE", $agent)) {
8    header("Location: SoftBank用サイトのアドレス");
9    exit;

という記述を含めるとよいでしょう。

キャリアごとに異なるコンテンツを提供する際、このようなスクリプトを用いることで、簡単にリンク先を振り分けることができます。そういった必要性が生じた際は、このスクリプトを使用してみてはいかがでしょうか。

「フロントエンドエンジニアの教科書」を出版しました!HTML・CSS・JavaScript+α 次世代コーダーのための仕事術

HTMLコーダーからフロントエンドエンジニアにステップするために必要な知識と技術を解説。
現場で求められる人材となるためには、何を知っていて、何ができなければいけないのか。
Web制作の最先端にいるクロノドライブだからこそ教えられるノウハウが満載です。

出版社名:ソフトバンククリエイティブ
著者:クロノドライブ

Amazon.co.jp詳細ページへ