DoCoMo、au、SoftBankの主要3キャリアと、iPhoneやAndroid端末でアクセスした際、そのキャリアを判別し、キャリアごとにリンク先を振り分けるスクリプトです。Perl(CGI)とPHPの二種類をご用意しました。環境に合わせてご選択ください。
Perlの場合
01 | $agent = $ENV{'HTTP_USER_AGENT'}; |
03 | if($agent =~ /iPhone/){ |
04 | print "Location: iPhone用サイトのアドレス"; |
07 | elseif($agent =~ /Android/){ |
08 | print "Location: Android用サイトのアドレス"; |
11 | elseif($agent =~ /DoCoMo/){ |
12 | print "Location: DoCoMo用サイトのアドレス"; |
15 | elseif($agent =~ /KDDI/){ |
16 | print "Location: au用サイトのアドレス"; |
19 | elseif($agent =~ /SoftBank/){ |
20 | print "Location: SoftBank用サイトのアドレス"; |
24 | print "Location: PC用のアドレス"; |
Vodafoneやauのやや古い機種など、過去のキャリアも対象に含める場合には、上記のスクリプトに、
01 | elseif($agent =~ /UP.Browser/){ |
02 | print "Location: au用サイトのアドレス"; |
05 | elseif($agent =~ /J-PHONE/){ |
06 | print "Location: SoftBank用サイトのアドレス"; |
09 | elseif($agent =~ /Vodafone/){ |
10 | print "Location: SoftBank用サイトのアドレス"; |
という記述を追加するとよいでしょう。
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用サイトのアドレス"); |
08 | } elseif (ereg("Android", $agent)) { |
09 | header("Location: Android用サイトのアドレス"); |
11 | } elseif (ereg("DoCoMo", $agent)) { |
12 | header("Location: DoCoMo用サイトのアドレス"); |
14 | } elseif (ereg("KDDI", $agent)) { |
15 | header("Location: au用サイトのアドレス"); |
17 | } elseif (ereg("SoftBank", $agent)) { |
18 | header("Location: SoftBank用サイトのアドレス"); |
21 | header("Location: PC用サイトのアドレス"); |
同様に、古いキャリアも対象に含める場合には、上記のスクリプトに、
1 | } elseif (ereg("UP.Browser", $agent)) { |
2 | header("Location: au用サイトのアドレス"); |
4 | } elseif (ereg("Vodafone", $agent)) { |
5 | header("Location: SoftBank用サイトのアドレス"); |
7 | } elseif (ereg("J-PHONE", $agent)) { |
8 | header("Location: SoftBank用サイトのアドレス"); |
という記述を含めるとよいでしょう。
キャリアごとに異なるコンテンツを提供する際、このようなスクリプトを用いることで、簡単にリンク先を振り分けることができます。そういった必要性が生じた際は、このスクリプトを使用してみてはいかがでしょうか。