2009-06-18 8 views
2

Apacheで、500エラーが発生するたびに404エラーを返したいと思います。Apache:500エラーの代わりに404エラーを返します。

それは非常に奇妙な使用例ですが、私は知っていますが、私はそれが可能かどうか疑問に思っています。

は、私はあなたが別のエラー時に何が起こるかを変えることができると信じて私をリードし、この

http://www.4webhelp.net/tutorials/misc/errors.php

を見つけました。記事によって提案されたが、私は思えないので、このような何かが/cgi-bin/error404.cgi

のErrorDocument 500

のErrorDocument 404 /cgi-bin/error404.cgi

素晴らしいことです私のUbuntuインストールでerror404.cgiを持っています。私がそれを得ることができるどんなアイデア、または代替の解決策?

+0

ErrorDocumentディレクティブは、ユーザーに表示されるメッセージを変更しますが、サーバーがバックグラウンドでブラウザに報告するステータスコードには影響しません。 ユーザーから「500エラー」メッセージを非表示にしたいだけであれば(その場合はこれで十分でしょう)、実際には、見える? –

+0

これは、 'ErrorDocument'や他のApacheの解決策であるかどうかを問われています。 – JLewkovich

答えて

0

error404.cgiを作成する必要があります。/usr/lib/cgi-binに移動し、error404.cgiというファイルを作成します。これはPerl(デフォルト)にするか、Pythonが有効な場合はどちらかを使用できます。あなたは、PythonやPerl、あなたのために働く必要がありますHERESに基本的なPerlスクリプトのいずれかがわからない場合:(あなたがcwarren.uuuq.com/downloads/perl/404.pl

 
#!/usr/bin/perl 
use strict; 
print "<html>"; 
print "<head>"; 
print "<title>404 ERROR!</title>"; 
print "</head>"; 
print "<body>"; 
print "<h1>Sorry for the broken link, but this page is not here!</h1>"; 
print "<br><br>"; 
print "<a href=\"javascript:history.go(-1)\">Click here to go back to the previous page.</a>"; 
exit(0); 
で私のウェブサイトからスクリプトをダウンロードすることができます

別のオプションは、/var/www/404.htmlなどのリンクを変更することです。

+4

ここでは2つの問題があります。まず、CGIスクリプトでなければならない理由はありません。 ErrorDocumentディレクティブのターゲットは、Webサーバー上の任意のファイル(通常のHTMLのみ)でもかまいません。 Second:これはユーザーに「* 404 Error」と言いますが、500エラーのErrorDocumentとして使用すると、HTTPステータスコード500がWebブラウザに返されます。 –

+1

ええ、私は、ブラウザに返される400のエラーだけでなく、別のページがユーザーに返される必要があります。 お試しいただきありがとうございます。 – Dave

1

これはあなたの質問には答えられませんが、本当にこれをやりたいのですか? 404は、さまざまな目的で使用されることを意図した非常に異なるものです。アプリケーション/サーバーの一時的な問題よりも実際には、自分が持っているURLが間違っていることをユーザーに伝えています。これは、ユーザーにテンポラルがあることを伝えるよりもyの問題があり、後でやり直す必要がありますか?つまり、カスタム500エラーページを持っていないのはなぜですか?

+0

ええ、それは基本的に非常に一時的な解決策です。そのエラーは、私が古いコードで修正する権限を持っていないというエラーです。新しいコードでは1か月で置き換えられますが、その間に404エラーを返すために500エラーを報告しているページが必要です。 – Dave

関連する問題