- ベストアンサー
モバイルの自動判別について
こんにちは。先日softbankを使っているお客様からモバイルサイトが見れないとクレームが入りました。 調べると、Softbank,vodafoneについても記述しないといけないようですが以下のCGIは以前に友人に作ってもらっていたもので 自分ではCGIの知識がない為上手く修正できません。 softbank携帯で見れるようにするには どう修正したらいいのでしょうか。 どうかよろしくお願いいたします。 (モバイルサイトは皆同じアドレスです) #!/usr/local/bin/perl $lct=''; ##Jaup 1 $jphone='J-PHONE'; $jjump='http://www.○○.biz/i/index.html'; #j-Phone用 ファイルアドレス指定 ##Jaup 2 $imode='DoCoMo'; $ijump='http://www.○○/i/index.html'; #i-MODE用 ファイルアドレス指定 #$ezmode='UP.Browser'; $ezjump='http://○○/i/index.html'; ## ユーザーエージェント $USR = $ENV{'HTTP_USER_AGENT'}; if ($USR =~ /$jphone/i) { $lct = $jjump;&go;} if ($USR=~ /$imode/i) { $lct = $ijump;&go;} if ($USR=~ /$ezmode/i) { $lct = $ezjump;&go;} $lct='http://www.○○.biz/index.html'; #パソコン用 ファイルアドレス指定 # &go; exit; sub go { print "Location: $lct\n\n"; } exit;
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Perlはよく分かりませんので、参考程度で $jphone='J-PHONE,vodafone,softbank'; と記述して ## ユーザーエージェント $USR = $ENV{'HTTP_USER_AGENT'}; の下ぐらいに @JP = split(/,/,$jphone); を追加 if ($USR =~ /$jphone/i) { $lct = $jjump;&go;} の行は、コメントアウトして、代わりに以下を追加 for($i = 0; $i <= $#JP; $i++){ if ($USR =~ /$JP[$i]/i) { $lct = $jjump; &go; } } でいかがでしょうか。 おそらく、Perlに精通した方でしたら、もっと 単純なプログラムになると思います。
その他の回答 (1)
- pick52
- ベストアンサー率35% (166/466)
その作られた方に修正してもらうわけにはいかないのでしょうか。 とりあえず、Vodafone及びSoftBankのUAが何になっているかが ちょっと分からないので明確に答えられませんが $jphone='J-PHONE'; を $jphone='(J-PHONE|Vodafone|SoftBank)'; みたいな感じにすればいいじゃないでしょうか。 (Vodafone及びSoftBankのUAがそれぞれVodafone/SoftBankであった 場合) ただ、UAだけで判断する場合はUAは偽装したりできますしあまり 信頼性は高くないと思います。 その点はご注意ください。
お礼
ありがとうございます。解決いたしました!
お礼
ありがとうございます。 試してみます。