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用サイトのアドレス" ); |
という記述を含めるとよいでしょう。
キャリアごとに異なるコンテンツを提供する際、このようなスクリプトを用いることで、簡単にリンク先を振り分けることができます。そういった必要性が生じた際は、このスクリプトを使用してみてはいかがでしょうか。