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