cgiが上手く動作しなくて

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

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

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

回答の条件
  • 1人2回まで
  • 登録:2009/01/10 04:05:53
  • 終了:2009/01/11 15:23:32

回答(3件)

id:y-kawaz No.1

y-kawaz回答回数1421ベストアンサー獲得回数2262009/01/10 09:27:42

ポイント27pt

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

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

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

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

id:happy778

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

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

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

Ryuzee回答回数19ベストアンサー獲得回数12009/01/10 09:39:31

ポイント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

pahoo回答回数5960ベストアンサー獲得回数6332009/01/10 09:59:39

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

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

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

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません