• ベストアンサー

CGI実行できない。ソースが表示される

サーバを移し変えたところ、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"> ヘッダー部分です。 上記のまま表示されます。 ヘッダー部分を直すんでしたっけ? 前に経験あって、クリアしたのですが、解消法忘れました。 同じソースを実行して全部が全部実行できないわけではありません。 文字コードではなかったような気がしますが。

質問者が選んだベストアンサー

  • ベストアンサー
  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.2

CGIのソースが先頭から表示されるんじゃ無く、HTMLのソースが見えるんですね? これ、もの凄く重要です。 直接の原因は、ブラウザが「CGIが吐いたHTML」をプレーンテキストと認識してるんでしょう。 その原因はWebサーバーソフトの設定がそうなってる可能性が高いかと。 簡便に対策するには、CGIが出力するレスポンスヘッダに Content-type: text/html; charset=Shift_JIS を追加してください。 # もしも既に Content-type: を出力してるなら、その内容を教えてください。 Content-type: の追加で解決したなら、サーバーの設定が以前と違うのが原因と断定できます。 Apacheなら、設定ファイルや .htaccess で本対策できるでしょう。 もう少し説明が必要ですか?

noname#102617
質問者

お礼

回答ありがとうございました。 おっしゃる方法で無事解決できました。 .htaccessはそのままにしておきます。

その他の回答 (1)

  • MOMON12345
  • ベストアンサー率32% (1125/3490)
回答No.1

cgiが実行可能になっていないのでしょう。 .htaccessが使えればそれで、使えなければApacheなりの設定を変更してください。

関連するQ&A