考えられるすべてのエラーをキャッチし、単一のカスタムエラーページでそれらを処理するワイルドカードディレクティブのようなものはありますか?
ErrorDocument 404 /error.php?code=404
ErrorDocument 403 /error.php?code=403
...
ErrorDocument NNN /error.php?code=NNN #possible use of RegExp?
ここではおそらく多くのカスタムエラーページを処理しないことはわかっていますが、これについては興味があります。
それは不可能です。デフォルトのエラーハンドラーとは異なる方法で処理するステータスコードごとに、ErrorDocument
ディレクティブが必要です。
エラーステータスコードを渡すのではなく、REDIRECT_STATUS環境変数(Apacheによって設定)を介してスクリプトで取得できます。参照: http://httpd.Apache.org/docs/2.0/custom-error.html
最初-- 。htaccess フォーマット済み
2番目-説明。
私がここで見つけたこれらすべて-> httpstatuses.com
これらはすべてのコードです-エラーだけではありません..いくつかはあなたのサイトを壊します。 。
次のように使用します。
ErrorDocument 100 https://EXAMPLE.com
これは正確なコピーの貼り付けです。これは私のものではありませんが、リストを再フォーマットしました。
(説明を表示するにはカーソルを合わせ、詳細を表示するにはクリックしてください。)
1××:情報
• 100 :続行
• 101 :プロトコルの切り替え
• 102 :処理中
2××:成功
• 200 :OK
• 201 :作成済み
• 202 :承認済み
• 203 :信頼できない情報
• 204 :OK(コンテンツなし)
• 205 :コンテンツをリセット
• 206 :部分的なコンテンツ
• 207 :マルチステータス
• 208 :すでに報告されています
• 226 :IM使用
3××:リダイレクト
• 300 :複数の選択肢
• 301 :恒久的に移動
• 302 :見つかりました
• 303 :その他を参照
• 304 :変更なし
• 305 :プロキシを使用
• 307 :一時的なリダイレクト
• 308 :永続的なリダイレクト
4××:クライアントエラー
• 400 :不正なリクエスト
• 401 :無許可
• 402 :支払いが必要
• 403 :禁止
• 404 :見つかりません
• 405 :メソッドは許可されていません
• 406 :受け入れられない
• 407 :プロキシ認証が必要
• 408 :リクエストのタイムアウト
• 409 :競合
• 410 :なくなった
• 411 :必要な長さ
• 412 :前提条件が失敗しました
• 413 :リクエストエンティティが大きすぎます
• 414 :リクエスト-URIが長すぎます
• 415 :サポートされていないメディアタイプ
• 416 :要求された範囲が満たされていません
• 417 :期待に失敗しました
• 418 :私はティーポットです
• 422 :処理できないエンティティ
• 423 :ロックされています
• 424 :メソッドの失敗
• 426 :アップグレードが必要
• 428 :前提条件が必要
• 429 。 "):リクエストが多すぎます
• 431 :リクエストヘッダーフィールドが大きすぎます
• 444 :応答なし
• 451 :法的な理由で利用できません
• 499 :クライアントクローズリクエスト
5××:サーバーエラー
• 500 :内部サーバーエラー
• 501 :実装されていません
• 502 :不正なゲートウェイ
• 503 :サービスを利用できません
• 504 :ゲートウェイタイムアウト
• 505 :HTTPバージョンはサポートされていません
• 506 :バリアントもネゴシエートします
• 507 :ストレージが不十分
• 508 :ループが検出されました
• 510 :拡張されていません
• 511 :ネットワーク認証が必要
• 599 :ネットワーク接続タイムアウトエラー
( ソース )
すべてのErrorDocumentを1行で処理する方法が見つかりません。ただし、すべてのリダイレクトを書き出す必要はありません。 ErrorCodeをPHPで渡すことができます:
$response_code = http_response_code()
私の.htaccessは次のようになります
ErrorDocument 401 /error.php
ErrorDocument 402 /error.php
ErrorDocument 403 /error.php
ErrorDocument 404 /error.php
ErrorDocument 500 /error.php