Apache ErrorLog:401 ErrorDocumentディレクティブで完全なURLを使用できません—無視します

Aug 13 2020

Apacheの.htaccessファイルを使用して、カスタムエラードキュメントを表示します。これもすべて正常に機能します。

しかし、ログにはまだこのエラーがたくさんあります。

[Thu Aug 13 10:38:31 2020] [notice] [client AH00113: /home/www/.htaccess:6 cannot use a full URL in a 401 ErrorDocument directive --- ignoring!

私の.htacessの6行目は単純明快です:

ErrorDocument 401 http://error.foo.bar/401.html

401 ErrorDocumentディレクティブの完全なURLを使用できないのはなぜですか?バグまたは機能?

回答

1 Lacek Aug 13 2020 at 17:07

コード401に応答して、ローカルURLパスのみを使用できます。これは、

リモートURLを指すErrorDocument(つまり、その前にhttpなどのメソッドがあるもの)を指定すると、Apache HTTPサーバーはクライアントにリダイレクトを送信して、ドキュメントがどこにあるかをクライアントに通知します。最終的に同じサーバー上にあります。これにはいくつかの影響がありますが、最も重要なのは、クライアントが元のエラーステータスコードを受け取らず、代わりにリダイレクトステータスコードを受け取ることです。これにより、ステータスコードを使用してURLが有効かどうかを判断しようとするWebロボットやその他のクライアントが混乱する可能性があります。さらに、ErrorDocument 401でリモートURLを使用する場合、クライアントは401ステータスコードを受信しないため、ユーザーにパスワードの入力を求めることを認識しません。したがって、ErrorDocument 401ディレクティブを使用する場合は、ローカルドキュメントを参照する必要があります。