プロが教える店舗&オフィスのセキュリティ対策術

サーバを移し変えたところ、Perlで書いたCGIが実行できません。

ソースがそのまま表示される部分があります。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=Content-type CONTENT=text/html; charset=Shift_JIS><LINK REL="SHORTCUT ICON" HREF="../favicon.ico">
<LINK REL="stylesheet" HREF="style.css" type="text/css">

ヘッダー部分です。
上記のまま表示されます。

ヘッダー部分を直すんでしたっけ?
前に経験あって、クリアしたのですが、解消法忘れました。

同じソースを実行して全部が全部実行できないわけではありません。
文字コードではなかったような気がしますが。

A 回答 (2件)

CGIのソースが先頭から表示されるんじゃ無く、HTMLのソースが見えるんですね? これ、もの凄く重要です。



直接の原因は、ブラウザが「CGIが吐いたHTML」をプレーンテキストと認識してるんでしょう。

その原因はWebサーバーソフトの設定がそうなってる可能性が高いかと。

簡便に対策するには、CGIが出力するレスポンスヘッダに
Content-type: text/html; charset=Shift_JIS
を追加してください。
# もしも既に Content-type: を出力してるなら、その内容を教えてください。

Content-type: の追加で解決したなら、サーバーの設定が以前と違うのが原因と断定できます。 Apacheなら、設定ファイルや .htaccess で本対策できるでしょう。


もう少し説明が必要ですか?
    • good
    • 0
この回答へのお礼

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

おっしゃる方法で無事解決できました。
.htaccessはそのままにしておきます。

お礼日時:2009/10/09 13:54

cgiが実行可能になっていないのでしょう。


.htaccessが使えればそれで、使えなければApacheなりの設定を変更してください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!