あなたの習慣について教えてください!!

こんにちは。先日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;

A 回答 (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に精通した方でしたら、もっと
単純なプログラムになると思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
試してみます。

お礼日時:2008/08/06 16:15

その作られた方に修正してもらうわけにはいかないのでしょうか。



とりあえず、Vodafone及びSoftBankのUAが何になっているかが
ちょっと分からないので明確に答えられませんが

$jphone='J-PHONE';



$jphone='(J-PHONE|Vodafone|SoftBank)';

みたいな感じにすればいいじゃないでしょうか。
(Vodafone及びSoftBankのUAがそれぞれVodafone/SoftBankであった
場合)

ただ、UAだけで判断する場合はUAは偽装したりできますしあまり
信頼性は高くないと思います。
その点はご注意ください。
    • good
    • 0
この回答へのお礼

ありがとうございます。解決いたしました!

お礼日時:2008/08/07 01:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!