![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?c9bd177)
CGIやphpによるユーザーエージェントを判別するスクリプトを使用して各キャリア別に自動振り分けをしたいということで以前質問しました。親切な方から下記回答をいただいたんですが、それをどうやってサイトに組み込めばいいのかがプログラムの知識が初心者レベルなので分かりません。CGIの設置の仕方は色々なサイトを見よう見真似でやってみたのですが、実行したら403エラーのような表示が出てメインのURLにアクセスできなくなってしまいました。下記のスクリプトはHTMLにも記述する必要があるんでしょうか?試したのはスクリプトを.cgiというファイルで保存してそれをサーバーにアップしてパーミッションを755に設定しただけです。どなたか、詳しく説明していただける方助けてください。
-------------------------------
#!/usr/bin/perl
#ユーザーエージェント取得
$uagent = $ENV{'HTTP_USER_AGENT'};
$ua = 99;
$docomohtml = 'ドコモ用ページ';
$auhtml = 'au用ページ';
$vodauhtml = 'ボーダ用ページ';
$otherhtml = 'その他用ページ';
if( index($uagent,"DoCoMo") >= 0){
$ua = 0;
}
elsif( index($uagent,"UP.Browser") >= 0){
$ua = 1;
}
elsif( index($uagent,"Vodafone") >= 0){
$ua = 2;
}
else{
$ua = 3;
}
if( $ua == 0){
print "Location: $docomohtml\n\n";
}
elsif( $ua == 1){
print "Location: $auhtml\n\n";
}
elsif( $ua == 2){
print "Location: $vodahtml\n\n";
}
else{
print "Location: $otherhtml\n\n";
}
exit;
-----------------------------------
No.4ベストアンサー
- 回答日時:
私も#2の方と同じように上記のソースを試してみましたが、問題ありませんでした。
やっぱり考えられるのは、403エラーということなので、
$docomohtml = 'ドコモ用ページ';
$auhtml = 'au用ページ';
$vodauhtml = 'ボーダ用ページ';
$otherhtml = 'その他用ページ';
の「●●用ページ」をサーバーに設置する必要があります。
各端末に合ったコンテンツ作りは、色んなサイトで紹介しているので、それを参考にして下さい。
No.3
- 回答日時:
一度 アドレスにフルパスで入力(index.cgiと入力)して実際に動いているか確かめてみましたか?
403というのはだいたい、ディレクトリを表示しようとして帰るエラーです。(403:アクセス拒否)
もし、特定できない!と言う場合は
if( $ua == 0){
の行の前に
print "Content-type: text/html;\n\n";
と言う行を挿入して走らせてみて下さい。(どんなヘッダーを返しているのか確認できます)
#携帯かどうかの判別はUAではなく、ホスト名で判別した方が確実かもしれません。(専用サイトの場合推奨::ua偽称できるので)
#参考までに
参考URL:http://d.hatena.ne.jp/indication/20050603#111776 …
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_07.png?c9bd177)
No.2
- 回答日時:
>HTMLのほうには何も記述する必要はないのでしょうか
HTMLは関係ありません。
試してみましたがCGIのほうも問題ありません。
まさか、この部分このままにしているとかw
ちゃんとアドレス書いていますか?
$docomohtml = 'ドコモ用ページ';
$auhtml = 'au用ページ';
$vodauhtml = 'ボーダ用ページ';
$otherhtml = 'その他用ページ';
参考URL:http://www99.cun.jp/test/test0602.cgi
No.1
- 回答日時:
・index.cgiというファイル名にしたのでしょうか?
・CGIを設置する場所が決まっていませんか? (サーバが指定したディレクトリ(フォルダ)にアップロードしましたか?)
・Perlのパスは正しいですか?
・文字コードや転送モードは正しいですか?
上記のソースを見ると携帯以外だと
$otherhtml = 'その他用ページ';
でその他用のページに飛ばされるみたいですが、その他用のページは、用意していますか?
この回答への補足
さっそくご回答ありがとうございます。
ファイル名はindex.cgiにしてアップロードはプロバイダーが指定しているのはサーバー内で特に限定した場所はないということなのでそのままアップしました。Perlのパスもプロバイダーが指定したものを1行目に書き転送モードはテキストモードでアップ後に拡張子のチェックもしました。その他用のページにはPC用のページを作ってそちらのURLを載せました。でも結果的にPCと携帯のどちらからアクセスしても403エラーということでアクセス権がないと表示されます。パーミッションは指定した数値で設定しましたし.httaccessは設定する必要がないということなので他に原因が思い当たらないのですが…HTMLのほうには何も記述する必要はないのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHP ページング データベース 1 2022/06/16 10:30
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- WordPress(ワードプレス) パソコンでword Pressで作っているブログに Google Analyticsを連携させたいの 1 2022/06/12 14:57
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで集計したい。
-
apacheでPerl CGIが作動せず、5...
-
CGIについてです。教えて下さい...
-
フォームを再送信しますか?
-
入力フォーム(電話番号)
-
POSTメソッドの最大容量について
-
CGIでラジオボタンの選択結果を...
-
めちゃきれい
-
number 改行が追加できない
-
生成AI画像について
-
3DCG
-
ホームページにメールフォーム...
-
cgi アクセス制限 エラー
-
CGIの記述について教えてくださ...
-
CGIの設置が分かりません・・・
-
ホームページにCGIを設置したの...
-
ホームページにCGIを設置したの...
-
サーバーのエラーでおしえてく...
-
ホームページの事でおしえてく...
-
さくらサーバーにcgiフォームを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ApacheでのCGIについての質問
-
HTTP 501未実装 エラーについて
-
設置場所場わかりません。
-
CGIがうまくアップできない(50...
-
CGIをHTML(scriptタグ)上でうま...
-
特定URLから
-
IIS Perl ADO ORACLE の組合せ...
-
うまくいきません
-
perlのcgiで-wTを記述するとエ...
-
ケータイサイトの3社別自動振り...
-
Internet Sever error 500
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
URLに~/cgi-bin/~を隠す方法
-
VBAでサーバーにアクセスするに...
-
CGIでソースがそのままでてしま...
-
ラジオボタンのグループ化
-
ASP(IIS?)のエラーについて
-
FTPにて553エラー
-
VBScriptで、ファイルから任意...
おすすめ情報