htaccess リダイレクト エラー ページ

htaccess リダイレクト エラー ページ

これはよくある質問だとはわかっていますが、ローカルホスト (WAMP) でなぜ失敗するのかわかりません。

500 エラーをログイン ページにリダイレクトしたいと思います。次のことを試しました。

  • ErrorDocument 500 http://localhost/mysite/login.php
  • ErrorDocument 500 C:/wamp64/www/mysite/login.php
  • ErrorDocument 500 mysite/login.php
  • ErrorDocument 500 login.php

いずれもログイン ページへのリダイレクトに失敗しました。

答え1

PHP で何かをテストしていました。エラー報告を無効にしたらどうなるか確認したかったのです。予想通り 500 エラーになりました。htaccess でリダイレクトを設定したいと思います。

これを処理するために ErrorDocument を定義することはできません.htaccess

display_errorsがオフの場合、アプリケーションで回復不可能なエラーが発生すると、PHP 自体は空の 500 応答を返します。

この応答をカスタマイズ/処理するには、独自のカスタム PHP エラー ハンドラーを定義する必要があります。 参考文献

(ただし、致命的なパースエラースクリプト内でエラー ハンドラーが呼び出されない可能性はありますが、実稼働サーバーではそのようなことは発生しないはずです。

それに関する文書を教えていただけますか?

残念ながら、これについては中心的な参照点がありません。本当にそれが仕組みなのです...

Apache ErrorDocumentは、Apache自体がエラーレスポンスをトリガーした場合にのみトリガーされます。(カスタム500 ErrorDocumentは、全てApache 500 応答は、後で定義すると、.htaccessほとんど何もキャッチできない可能性があります。これは、サーバー構成/仮想ホストで定義する必要があります。

PHP が応答を送信したときに Apache ErrorDocument がトリガーされるようにするには、Apache が応答をインターセプトして上書きする必要がありますが、これは行われません。PHP スクリプトから 404 を送信する場合と同様に、Apache はこれをインターセプトして Apache 404 応答を送信しません。

関連情報