みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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">

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

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

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

投稿日時 - 2009-10-09 12:51:34

QNo.5353822

暇なときに回答ください

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

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

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

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

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

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


もう少し説明が必要ですか?

投稿日時 - 2009-10-09 13:43:52

お礼

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

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

投稿日時 - 2009-10-09 13:54:19

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

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

投稿日時 - 2009-10-09 12:58:08

あなたにオススメの質問