Basic認証(基本認証)の動作確認とエラー対処
Basic認証の準備ができたら、実際に動作を確認してみて下さい。確認方法やエラーへの対処方法を簡単にご紹介しておきます。【このページの目次】
- Basic認証のログイン画面が表示されるかどうかを試す
- 認証画面は出るが、認証が通らない場合
- 認証画面が出ず「Internal Server Error」が出る場合
- 認証画面が出ず、ページがそのまま見えてしまう場合
Basic認証のログイン画面が表示されるかどうかを試す
指定ディレクトリ以下のすべてが認証の対象になる
Basic認証が問題なく機能していれば、下図ようなユーザー名(ID)とパスワードの入力欄がある画面が表示されます。
Windows7版のFirefoxとInternet Explorerでの表示例 (※両ブラウザ共にAuthNameの設定内容は表示するが、Firefoxは「~に対するユーザ名」と表記し、IEは「~のサーバー」と表記する)
もし、Basic認証が意図通りに機能していない場合は、以下の対処を試してみて下さい。
認証画面は出るが、認証が通らない場合
ユーザー名やパスワードに何を入力しても認証が失敗してしまい、最終的に「401 Authorization Required」エラーしか表示されない場合があります。Basic認証で認証に失敗した際に表示される「401 Authorization Required」エラー
この場合は、.htaccessファイル内に記述した.htpasswdファイルの位置が誤っている可能性があります。正しいフルパスが記述できているかどうか、.htacccessファイルの記述を確認してみて下さい。
また、.htpasswdファイルの内容に問題がある可能性もあります。下記の点も確認して下さい。
- 望みのユーザー名が正しく記述されているかどうか(大文字・小文字は区別されます)
- 余計な空白文字やBOMなどの特殊文字が挿入されていないか
- ファイルはプレーンテキストとして保存されているか
それでも原因が分からない場合は、パスワードのハッシュ化と.htpasswdファイルの作成からやり直してみて下さい。
認証画面が出ず「Internal Server Error」が出る場合
認証画面が出ることもなく、本来のウェブページが表示されることもなく、ただ「500 Internal Server Error」エラーが出てしまう場合もあります。サーバ側で何か問題が発生した際に表示される「500 Internal Server Error」エラー
このような場合は、サーバの設定を記述した.htaccessファイル内の記述が誤っています。
記述内容にスペルミスがないか、空白文字が全角になっていないか、余分な記述がないか等を確認してみて下さい。.htaccessファイルでは、余計な文字が1文字あるだけでもこのエラーが表示されますので注意して下さい。
なお、文法的に誤りがなくても、そのサーバで使用が禁止されている設定を記述している場合にもこのエラーが表示されます。お使いのサーバでBasic認証が使用可能かどうかも確認して下さい。
認証画面が出ず、ページがそのまま見えてしまう場合
認証を求める画面も表示されず、エラーも出ず、単にウェブページがそのまま無条件で見えてしまう場合は、.htaccessファイルの使用が許可されていない(置いても設定が有効にならない)サーバである可能性があります。その場合は、残念ながらBasic認証は使えません。なお、本記事で解説した方法は、ウェブサーバがApacheの場合の方法です。ウェブサーバがApacheではない場合(IISなど)では、Basic認証が利用可能でも実現方法が異なります。その場合は、お使いのウェブサーバに合った別の解説をご参照下さい。
さて、Basic認証が無事に使えたら、最後に.htaccessファイルや.htpasswdファイルの中身が第三者に閲覧可能な状態になってしまっていないかを確認しておきましょう。もしブラウザ上でこれらのファイルの中身が見える場合は、見えないように隠す必要があります。
最後に、.htaccessと.htpasswdを第三者に見られないようにする方法をご紹介いたします。