CGIのLocationが使えません

[上に] [前に] [次に]
Seven Three [E-Mail] 1999/06/17(木) 23:37:56
以下のような出力をするCGIを作成して,Apacheサーバーで実行してみました。

print "Location: http://***/\n\n";

が,どのブラウザで開いても,ファイルタイプ「application/x-httpd-cgi」が未定義なので開けない,といったメッセージを出してきます。

いったいどうすれば使えるようになるでしょうか。

ちはる 1999/06/18(金) 05:18:57
そもそも、Apacheの設定で、.cgiをcgiとして実行する設定になってないのかもしれないですよね。
手元にサーバーがあるなら、srm.conf(だっけ?)を編集してみましょう。
http://japache.infoscience.co.jp/
このサイトをご覧になれば、必要な情報がえられるかも。

Seven Three 1999/06/18(金) 13:33:34
[[解決]]
お返事ありがとうございます。
結論。Locationだけなら動くことが判明しました。

404エラーのカスタムメッセージとしてCGIを設定し,指定されたファイル名によって分岐させたいと思い,実験していましたが,どうもだめなようです。

たとえば分かりやすく言うと,
http://***.com/aa のときは http://***.com/test/aa/ に,
http://***.com/bb のときは http://***.com/test/bb/ に,
それぞれジャンプするようにしたかったわけです。

でも,LocationはCGIを直接呼び出さない限りうまくいかないようです。仕方がないのでrefreshタグで我慢します。

B-Cus 1999/06/19(土) 07:45:59
> ファイルタイプ「application/x-httpd-cgi」が未定義なので開けない
CGIで Content-type: text/html を出してやればこの症状は出ませんが、
ブラウザはステータス404が返ってきた場合はLocationを無視するようなので、
ダメっぽいですね。

うちのwebが移転したらこの方法を使おうとしてたんですが、ダメなのかぁ。

nphスクリプトにして、
 print <<END;
 HTTP/1.1 200(30Xの方がいいかな) ....
 ....
 Location: ....
 
 END
だとできるかも。でもErrorDocumentでnphなCGIを指定できるのかしら?

Seven Three 1999/06/19(土) 18:17:05
NPHもうまくいきませんでした。

<A href="come,to" target="_top">V3 URL(come.to)</A>は,どんな方法でウェブページ転送をしているのでしょうか。
今のところ
1.refreshタグで10秒後に移動
2.フレームで表示
3.瞬時に移動,ブラウザの履歴にも残らない
という三種類を提供していますが,三つ目の方法が分からないのです。
LYNXでも移動するから,JavaScriptではありえないし。(当然か)
やはりLocationだと思うのですが,404エラーを利用するという考えが間違っていたのでしょう。もう少し研究してみます。

Seven Three 1999/06/19(土) 18:18:43
http://come.to/

すみません

B-Cus 1999/06/19(土) 18:35:18
適当にディレクトリを掘って、
 DirectoryIndex jump.cgi
として、/hogeにアクセスすると
 /hoge/jump.cgi
が実行される、というのはダメ?

ただ、これだと事前にディレクトリを掘っておく必要がありますが。

yasu [HomePage] 1999/06/20(日) 11:27:12
come.toはよくわかりませんが、pipi.netと同じでしょう、多分。
Perlなどで、ソケットを使ってtext/plainで出力してみると、
わかると思います。
ちなみに、pipi.netはやはりLocation使っていた(^^)
MyHP:http://pipi.net/yasu-soft/

yasu 1999/06/20(日) 11:28:30
あ、
> 3.瞬時に移動,ブラウザの履歴にも残らない
> という三種類を提供していますが,三つ目の方法が分からないのです。
これへのレスです(^^;)

B-Cus 1999/06/20(日) 18:07:39
あ、間違い。
> 適当にディレクトリを掘って、
じゃなくて、hogeというスクリプトを作っておいて、
 <Files "hoge">
  SetHandler cgi-script
 </Files>
しといて、その中で
 print "Location: http://newsite/$ENV{PATH_INFO}\n\n";
する、と。

Seven Three 1999/10/24(日) 23:14:05
>NPHもうまくいきませんでした。
などと書きましたが,数カ月ぶりに試してみたところできました。前回はNPHの何たるかを正しく理解していなかったようです。

[上に] [前に] [次に]