※ ChatGPTを利用し、要約された質問です(原文:Not Found 404エラー時のCGI出力)
Not Found 404エラー時のCGI出力
このQ&Aのポイント
Perlを使ったシステムで、404エラーが発生した場合に、エラーとなったURLを取得し、それに合わせて動的なページを表示したい。
現在の設定では正しく動作せず、$ENV{'REQUEST_URI'}の値が正常に取得できない状況。
解決策や参考になる情報をお知りの方がいらっしゃれば、教えていただきたい。
こんにちは。
かなりハマってしまいました。
多分これ以上は、自身の力で解決できそうにないと思い質問させて頂きます。
現在、Perlを使ったシステムを作っています。
そこでページが見つからなかった場合に、どのページが見つからなかったのか、そのURLに合わせて
「ページが見つかりません。○○を確認してください」のような動的なページを作成したいと思っています。
■現状
htaccessで、
ErrorDocument 404 /maintainace/cgi/make_page_err.cgi
の記述をしています。
■期待する結果
呼び出し先のCGI側で$ENV{'REQUEST_URI'}から
エラーとなったURLを取得し、それに合わせて「Print xxxx」をする
(さらに最終的にはHTMLを作成し、それを表示したい)
■現在の結果
無反応。
ただし、処理が走っているかを確認するために、呼び出し先のCGIに
open File, ">>./404_log.txt";
を入れると正しくテキストファイルが書き込まれる → 通っていることまでわかる。
試しにCGIの先頭に
print "Content-type: text/html\n\n";
print "aaa";
exit;
とすると「Oops! This link appears to be broken.」(Firefox)のエラー画面が表示。
上記のテキスト書き込みなし。
更に
ErrorDocument 404 /maintainace/cgi/make_page_err.cgi
を絶対パスにしたところ
動作はするが、$ENV{'REQUEST_URI'}の値が「make_page_err.cgi」とCGI自身なり、
元のURLが拾えない。
このような状態です。
ネットでもいろいろ検索しましたが、求めている回答は見つかりませんでした。
直接の回答でなくても、参考になるURLなどでも構いませんので
ご存じある方お願いいたします。
お礼
geeok様 ビンゴでした!! 多分8時間くらいネットでいろいろ調べてもできず、正直無理かもと思っていました。 教えていただいたサイトも勉強になりそうです。 本当に助かりました。 ありがとうございました。