PHP 5.2 の Web サイトで、フレンドリ URL (および mod_rewrite) がオンになっている Web ページのエラー処理中に問題が発生しました。フレームワークから URL ルールを管理しているため、すべてのリクエストを index.php に移動する必要があります。それは簡単な部分です (そして魅力のように機能します)。さて、同じフレームワークからたまたま http ステータス コードをヘッダーにスローしてから I をスローしたexit()
ため、出力はありませんが、ヘッダーはユーザーにディスパッチされます。問題は次のいずれか (または両方) です。
ステータスコードは処理開始後に送信されるので、Apache は関係ありません (間違っていたら訂正してください)。
すべてのリクエスト (おそらく 403 と 500 でさえ?) は index.php に書き直されているため、
ErrorDocument
読み込まれることはありません。
これが私の.htaccessです:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
ErrorDocument 400 /error/400
ErrorDocument 403 /error/403
ErrorDocument 404 /error/404
ErrorDocument 405 /error/405
ErrorDocument 408 /error/408
ErrorDocument 500 /error/500
ErrorDocument 502 /error/502
ErrorDocument 504 /error/504
/error/"number"
解析できる別の URI はどこにありますか。静的ページの場合もあります。さて、質問:
のディレクティブを使用するために、これらのエラー リクエスト (リクエストの開始後にスローされる) を作成する方法はありErrorDocument
ますか?
PS: 補足として、Chrome は標準の「クロム色」の禁止/見つかりません/などのページを表示しますが、Firefox は空白の画面のままになります。