ドキュメントに記載されているモードを使用して mod_auth_form を使用しようとしていますが、「本文保存を使用したインライン ログイン」と記載されています。ドキュメントでは、ログインフォームを生成するために mod_include または CGI を ErrorDocument として使用することについて言及しています。
ErrorDocument 401 /cgi-bin/login.cgi
シナリオは、ユーザーが認証されていないページから、またはセッションがタイムアウトした認証済みページから POST したい場合です。
POST がターゲット URL に到達し、mod_auth_form によってインターセプトされ、ErrorDocument 401 が呼び出され、ユーザーが資格情報を入力します。ログイン フォーム ページでは、「特別な」隠しフォーム変数 httpd_body を追加 (および httpd_method) できます。これは、認証ハンドラーによって処理され、元のターゲットへの POST ボディを作成します。
問題は、(明らかに) apache が POST データを ErrorDocument に渡さないため、login.cgi が POST データを取得しないことです。ErrorDocument に代わる方法は、ディレクティブ AuthFormLoginRequiredLocation を使用することですが、これは単純な 302 リダイレクトを行い、もちろん POST データは失われます。
元の POST データを取得できないため、httpd_body の機能は使用できないようです。GET の場合でも、リファラーを解析して GET 変数を取得する必要があります。
認証フックが実行される前に、Apache で POST データを読み取り、どこかに保存する方法はありますか? または、私が見逃した他の解決策はありますか?