アプリ版:「スタンプのみでお礼する」機能のリリースについて

上記のLinuxにデフォルトでapacheを入れる設定にしてインストールしたのですが、
インストール後、404や403などのエラーコードのHTMLを書き換える為、
/etc/httpd/conf/httpd.conf に

# Error documents

ErrorDocument 404 ERROR/404.html
ErrorDocument 403 ERROR/403.html

のように書き換え、/var/www/html/ のapacheの最初のindex.htmlが入っていた
ディレクトリにERRORディレクトリを作り、中に403.html等を入れているのですが、
403のエラーメッセージが、最初のまま変わりません。

ErrorDocument 403 "403 error

とした場合には、ちゃんとただのテスストで「403 error」と応答が返るように変える事ができたのですが、
htmlの表示と指定方法になると何故か難しくて、わかりません。apacheの公式ページの通りに書いたと思うのですが。何故でしょうか。

A 回答 (5件)

ErrorDocument 404 /ERROR/404.html


ErrorDocument 403 /ERROR/403.html
が正解ではないでしょうか?

この回答への補足

早速の回答有り難う御座います。
ちゃんと/ERRORにしましたが、まだデフォルトのまま変わりません。何故でしょう・・・

あと、このついでみたいな感じの事ですが、自分で作ったHTMLに「(打ち込まれたURL)はありませんよ」
と表示させるにはどうしたらいいのでしょうか。CGIでやるしかないのでしょうか。

補足日時:2002/05/13 15:49
    • good
    • 0

apache の再起動はされましたか?設定ファイルの変更後は 再起動が必要です。



/ERROR/404.html

これらのファイルは apahce から認識できるところにちゃんとありますか?localhostの場合 http://localhost//ERROR/404.html とすれば見えるはずですが…。ちゃんと見えないのだったら /ERROR に alias の設定が必要と思います。
    • good
    • 0

(#1の補足の内容について)


私もapacheの再起動くらいしか思いつかないです。

ついでの方の話は、やはりCGIとかを使うしか
ないと思います。

この回答への補足

再起動したらうまくいきました。皆様どうも有り難う御座います。

2つ目の方なのですが、デフォルトの表示ではちゃんと
URLを表示して、「~~.html Not Found」と表示が出るのですが、
この機能を、自分の作ったHTMLに流用利用することは出来ませんか。

補足日時:2002/05/14 01:03
    • good
    • 0

デフォルトのエラーで「~~.html Not Found」と


出るのは、どこかにあるそういうhtmlファイルを
読み込んで表示しているのではなくて、
apacheがその場で生成して表示しているから
可能なのだと思います。

どのページにアクセスしようとしてエラーになったのか
は、環境変数の REQUEST_URI とかに入っていると
思うので、この内容を表示するためには、やはり
CGIとかの何らかのプログラミングが必要ではないかなぁ
と思います。

PerlのCGIの例) /ERROR/404.cgi
#! /usr/bin/perl
print <<"EOF";
Content-Type: text/html

<html>
<head>
<title>404 Not Found</title>
</head>
<body>
<h3>404 Not Found</h3>
<p>$ENV{'REQUEST_URI'} was not found.</p>
</body>
</html>
EOF
    • good
    • 0

補足です。

#4の例ではセキュリティー的に問題になる
場合もありうるので、そのまま使うなら、次のように
する方がいいと思います。

#! /usr/bin/perl
$request_uri = $ENV{'REQUEST_URI'};
$request_uri =~ s/>/&gt;/g;
$request_uri =~ s/</&lt;/g;
$request_uri =~ s/&/&amp;/g;
print <<"EOF";
Content-Type: text/html

<html>
<head>
<title>404 Not Found</title>
</head>
<body>
<h3>404 Not Found</h3>
<p>$request_uri was not found.</p>
</body>
</html>
EOF

この回答への補足

わかりやすくありがとうございます。
この場合は404.cgi(例)として動かさねばならないみたいですが、
var/www/cgi-bin/ 以外ではcgiが動かないようです。
htmlからcgiを呼び出すとか考えたほうがいいのでしょうか?

補足日時:2002/05/15 11:43
    • good
    • 0

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