PHP からカスタム値「Application」を使用して 401 ヘッダーと WWW-Authenticate ヘッダーを発行しています。カスタム値は、WWW-Authenticate ヘッダーが「Basic」に設定されている場合と同様に、ブラウザが Apache 認証ポップアップ ウィンドウをロードするのを防ぎます。アプリケーションが認証を処理するため、これは私のアプリケーションにとって望ましい動作です。これはすべてうまく機能し、403 ヘッダーを発行するよりも 401 ステータス コードの意図に従っているようです。
Apache 構成に既に Apache auth 設定があるサーバーでこれを実行すると、問題が発生します。401 ヘッダーにより、Apache は、PHP から発行した WWW-Authenticate ヘッダーではなく、Apache 構成に示されている WWW-Authenticate メソッドを送信します。したがって、応答ヘッダーは、アプリケーションから発行された「アプリケーション」ではなく、Apache 構成のように「基本」になります。これにより、無限の認証ループが発生し、Apache 認証ポップアップが表示され続けます。
これに対する私の解決策は、今のところ 403 ヘッダーを発行することですが、そうするのは正しくないようです。403 は、ユーザーが認証されても、要求が許可されないことを示します。
アプリケーション レベルのログインに 401 ヘッダーを使用するべきではありませんか? HTTP認証のみを目的としているようです。そうでない場合、403 はこれに本当に適していますか? いろいろ調べましたが、明確な基準がわかりません。