cgiが上手く動作しなくて

sshで実行してみると下記のエラー(?)が表示されます。

Status: 403
Status: 200
Cache-Control: no-cache
Content-Type: text/html; charset=Shift_JIS

これは何を意味しているのでしょうか?
そして解決方法を教えて頂けると幸いです。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/01/11 15:23:32
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:y-kawaz No.1

回答回数1422ベストアンサー獲得回数226

ポイント27pt

「sshで実行してみると」が何をされたのかが分からないと何とも言えませんが…。

telnet でHTTPを話したのか、もしくはwget的なコマンドを実行したのか、それともcgiを直接シェルから起動したのか?

ですが、どちらにしろ Status が2行も返ってくるのはおかしいのでプログラムに問題があるとおもいます。

残念ですがこの情報だけでは、解決方法はCGIのソースを見て頑張る、としか言えない気がします。

id:happy778

回答ありがとうございました。

とても参考になりました。

2009/01/11 15:23:21
id:ryuzee No.2

回答回数19ベストアンサー獲得回数1

ポイント27pt

表示された内容はすべてレスポンスヘッダーですね。

その中でStaus: 200 と Status: 403はレスポンスコードを示しており、200は成功、403はアクセス禁止を示します。


ただ一回のリクエストでレスポンスコードを複数回応答することはありませんので、

作られているCGIの処理で、条件分岐がうまくいっていないと思われます。


出力内容を見る限り、以下のような記述がCGIの中にあって、両方通っています。

if(条件){ print "Status: 200\n"; }

if(条件){ print "Status: 403\n"; }


本文は何も表示されていないので、本文の表示になんらかの条件分岐があるならそのあたりを疑ってみると良いのではないでしょうか。

id:happy778

回答ありがとうございました。

とても参考になりました。

2009/01/11 15:23:25
id:pahoo No.3

回答回数5960ベストアンサー獲得回数633

ポイント26pt
Status 403
リスクエストに対する実行権限がありません。cgiのパーミッションが間違っていたり、当該権限で実行できないsystem命令などが含まれている場合に発生します。
Status 200
リスクエストが成功していることを示します。一部の cgi で 403 エラーが発生しているものと思われます。
id:happy778

回答ありがとうございました。

とても参考になりました。

2009/01/11 15:23:28
  • id:koujirou6218
    どのようなCGIでしょうか?
    エラーではなくCGIは正しく動作しておりCGIが出力した結果ではないでしょうか?
    logファイルのエラーではないですよね?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません