No.4
- 回答日時:
補足です。
ネゴシエーションについてですが、これは、条件によって表示するページを変える設定のことです。
たとえば、日本人には日本語で、中国人には中国語でコンテンツを提供する、というようなこともできます。
ブラウザの設定に「言語の優先順位」というようなものがあるのを見たことがあると思いますが、あれがそうです。
俺は少なくとも言語による区別しかみたことがありませんけど、アパッチのバージョンが上がればブラウザによってページを変えたりもできるようになるかもしれません。
なお、アパッチというのはホームページを表示するためのサーバー側プログラムの一種で、現在もっとも一般に普及しているものです。
この回答への補足
すみません。また教えてください。
CGIの方がどうしてもサーバエラーになってしまうので
.htaccessで
order allow,deny
allow from all
deny from 210.153.84.
ErrorDocument 403 http://ドメイン名/i.html
このように記述してi-modeのIPをdenyし、403ページを
i-mode用のメニューにするように考えたのですが、
アクセスに妙に時間がかかってしまいます。
やはりこれは問題でしょうか。。。
補足ありがとうございます。
現在のapacheではブラウザによる表示ページのネゴエーションは無いんですね。
UNIX系ではapacheが普及しすぎてapache以外のデーモンはほとんど耳にしないですねー。
No.3
- 回答日時:
私はUSER_AGENTでPCとi-modeを判別して、それぞれのHTMLファイルを読み込んで表示…としています。
if ($agent eq 'i') {
if(!open(IN, "$iFile")) {
$Date = join('',<IN>);
close(IN);
$len = length($Date);
print "Content-type: text/html\n";
print "Content-length: $len\n";
print "\n";
print $Date;
}
else {
if(!open(IN, "$pcFile")) {
$Date = join('',<IN>);
close(IN);
print "Content-type: text/html\n\n";
print $Date;
}
別にjoin()を使わなくても1行ずつ読み込んで表示するのでも良いと思いますが、これは私の癖みたいなもんです(^^;
No.2ベストアンサー
- 回答日時:
JavaScript を使う技は、端末に JavaScript が入っていることが前提なのでおすすめできません。
ネチケッチ違反ですし(^_^;
で、それだと、下記のようなCGIを用意するのが一番いいでしょう。
本当はアパッチのネゴシエーションが使えればそれが一番なんですけどね。CGIは重いし(^_^;
ファイル名:index.cgi
------------------------------○
#!/usr/local/bin/perl
$browser=$ENV{'HTTP_USER_AGENT'};
$browser=~s/\/.*$//;
if($browser =~ /^docomo$/i ){
print "Location: http://wwwwwwww/"; #i-mode
} else {
print "Location: http://wwwwwwww/"; #other
}
------------------------------○
で、これでiモードだけを #i-mode の行のURLへとばします。このとき、Location: のあとに来る文字列は必ず http: から始まっている必要があります。
i-mode 以外のブラウザは無条件で #other の方へ飛びます。
また、1行目は問題があるようであれば書き換えてください。
もちろん、.htaccess に
DirectoryIndex index.cgi
という記述が可能であるか、でなければ
または
DirectoryIndex index
という設定がプロバイダ側でやってあることが前提ですのでお気を付けを。
プログラムが何やってるのか分からなければ、簡単にでよければ解説しますんで、そのときは補足ください。
ただし、iモードが Location: を認識するかどうか分からないので、503i以前のiモードを持っているのであれば実際に動くかどうかテストしてみてください。
ありがとうございました。m(_ _)m
まさにこの記述ですね!
USER_AGENTでif文を使えば良かったのですね。
ところでアパッチのネゴエーションというのはどのようなものでしょうか・・・?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- CGI cgiの注釈が出来ない 2 2022/04/27 09:15
- その他(プログラミング・Web制作) プログラムについて。 2 2022/04/07 18:48
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- その他(プログラミング・Web制作) プログラムについて。 4 2022/03/30 09:59
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- Windows 10 windows11が突然起動しなくなりました 3 2022/06/30 17:49
- その他(プログラミング・Web制作) python 3.10で 同じlistに同じ構文で同じデータ代入した結果が異なる現象発生 7 2022/06/18 11:08
- その他(パソコン・周辺機器) Bluetooth 機器を二つ以上つなぐとつないだ機器が使えなくなる 2 2022/08/20 17:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
iis+cgiでmultipart/form-data...
-
CGI経由でのPDFファイルをダウ...
-
2つのドメイン、同じサーバー。...
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
WEBページを強制的に横画面で見...
-
select値をhiddenのvalueに渡し...
-
pythonのnumpyでの列(縦)ベク...
-
日本語文字化け(GETメソッド?)
-
EXCELとの連携
-
チェックボックスグループの一...
-
HTML プルダウンメニューの選択...
-
vsftpd+sslでアップロードできない
-
Javascriptの変数をCGIに送る方法
-
INPUT TYPE
-
VB.net データーグリッドビュー...
-
チェックボックスの返す値
-
「value」に2つの値をセットす...
-
postデータのあるページの再表示
-
VB初心者。小数点以下の表示で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perl/cgi リダイレクトができない
-
htmlからパラメータで、cgiに渡...
-
フォントサイズを変えるには?
-
CGI経由でのPDFファイルをダウ...
-
CGI
-
プログラム実行中の待機ページ...
-
メイルフォームの本文が文字化け
-
Yomi-Searchのカテゴリを縦並び...
-
cgi(perl) sendmailの使い方
-
sendmail 送信先を複数設定す...
-
iis+cgiでmultipart/form-data...
-
<FORM TYPE="subumit">でデータ...
-
サーバー上のPDFにCGIでパスワ...
-
指定のフォルダに指定のファイ...
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
select値をhiddenのvalueに渡し...
-
「value」に2つの値をセットす...
-
チェックボックスの返す値
-
INPUT TYPE
おすすめ情報