ホームページの特定ディレクトリにアクセス制限をかけたいとき、手軽に使えるのがBasic認証です。設定は、.htaccessと.htpasswdの2つのファイルを用意するだけで、特別なプログラムは不要です。
この記事では、Basic認証の仕組みや使いどころから、.htaccessの書き方・設定手順、効かないときの原因と対処法、解除手順まで解説します。
Basic認証とは
Basic認証は、ホームページの特定ディレクトリにIDとパスワードによるアクセス制限をかけるための認証方式です。HTTPプロトコルの標準機能として提供されており、.htaccessと.htpasswdファイルの設定だけで導入できます。
なお、Basic認証はIDとパスワードが暗号化されない状態で送信されるため、HTTPSと併用することが前提です。HTTPのままBasic認証を使うと、認証情報が第三者に盗まれるリスクがあります。
また、レンタルサーバーによってはサーバーパネルからBasic認証を設定できるケースもあります。
Basic認証でできること

Basic認証を使うと、ホームページの一部だけを対象にアクセス制限をかけられます。ここでは、Basic認証によって実現できる内容を紹介します。
ディレクトリ単位でアクセスを制限できる
Basic認証は、サイト全体はもちろん、特定のディレクトリだけに適用できる仕組みです。たとえばルートディレクトリに.htaccessを設置すればサイト全体が認証の対象になり、/test/のような特定のディレクトリに設置すれば、その配下のページだけがIDとパスワードの入力が求められるようになります。
ホームページの大部分は誰でも見られる状態にしておきながら、開発中のページや一部の限定コンテンツだけを区切って保護することが可能です。アクセス制限をかけたい範囲は.htaccessの設置場所で調整できるため、サイト構成を変更する必要がありません。
検索エンジンのクロールをブロックできる
Basic認証をかけたディレクトリは、人間のユーザーだけでなく検索エンジンのクローラーもアクセスできなくなります。認証を求められた時点でクローラーは情報を取得できないため、そのページは検索結果にインデックスされることがありません。制作中のページや確認用のテスト環境を、誤って検索結果に表示させてしまう心配がなくなります。
Basic認証は、検索結果に出したくないページを確実に隠したい場合にも活用できる仕組みです。
追加のプログラムなしで導入できる
Basic認証は、Apacheをはじめとする多くのWebサーバーで標準的に対応している認証方式です。専用のプログラムや管理システムを新たに導入する必要はなく、.htaccessと.htpasswdという2つの設定ファイルを用意するだけで利用できます。
レンタルサーバーでも基本的に対応しているため、サーバーの種類を選ばず、低コストかつ短時間で導入できる点もメリットです。手軽に使えるアクセス制限の手段として、中小企業や個人運営のホームページで取り扱いやすい仕組みといえます。
ホームページ制作・運用でBasic認証を利用するシーン
ホームページ制作・運用の現場では、Basic認証はさまざまな場面で活用されています。
たとえば、リニューアル中のホームページを一般公開前に社内だけで確認したいときは、テストサイトにBasic認証をかけておくことで、関係者以外のアクセスを防ぎながら安全にチェックを進められます。社内向けの資料や進捗報告ページなど、外部に見せたくないコンテンツの共有にも適しています。
また、本格的なログイン機能を用意するほどではないものの、誰でも見られる状態は避けたいセミナー資料や限定動画の配布ページにも、簡易的な手段として使われています。
.htaccessを使ったBasic認証の書き方と設定手順

Basic認証を導入するには、.htaccessと.htpasswdという2つのファイルを作成し、アクセス制限をかけたいディレクトリにアップロードします。ここでは、実際の書き方と設定の流れをステップごとに紹介します。
STEP1. .htpasswdの保存先パスを確認する
.htaccessのAuthUserFileには、Basic認証で使用する.htpasswdファイルを設置する場所の絶対パスを記載する必要があります。
絶対パスとは、サーバーのルートディレクトリから見たファイルの正確な位置を示すパスのことです。多くのレンタルサーバーでは、サーバーパネルの管理画面から絶対パスを確認できます。XserverやロリポップなどのサーバーであればFTP情報やサーバー情報のページに記載されていることが多いため、事前に確認しておくとスムーズです。
確認できたパスは、STEP2で作成する.htaccessのAuthUserFileに記載します。
STEP2. .htaccessファイルを作成する
テキストエディタで.htaccessという名前のファイルを新規作成します。WordPressで制作されたホームページの場合は、すでにルートディレクトリに.htaccessが存在しているため、新規作成せず既存のファイルに追記してください。ファイルには、Basic認証を有効にするための記述を行います。
主な記述項目は以下のとおりです。
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /full/path/to/.htpasswd
Require valid-user
AuthTypeで認証方式をBasicに指定し、AuthNameには認証画面に表示するメッセージを設定します。AuthUserFileには、STEP1で確認した絶対パスを使って、.htpasswdファイルの場所を記載します。最後のRequireには、valid-userと記述することで、IDとパスワードが正しいユーザーにアクセスを許可する設定になります。
STEP3. .htpasswdファイルを作成する
テキストエディタで.htpasswdという名前の新規ファイルを作成し、Basic認証で使用するユーザー名とパスワードを記述します。パスワードは平文では保存できず、必ずハッシュ化した状態で記述する必要があります。
sampleuser:K3IUxFZOe5cCGrgw
ハッシュ化されたパスワードは、ラッコツールズのhtpasswd生成/確認ツールを使えば簡単に生成できます。
生成されたハッシュ値をそのまま使い、ユーザー名とパスワードをコロンで区切って1行で記述します。複数のユーザーを登録する場合は、行を分けて同じ形式で追加します。
STEP4. サーバーにアップロードする
作成した.htaccessと.htpasswdの2つのファイルを、FTPソフトなどを使ってサーバーにアップロードします。
両方のファイルは、アクセス制限をかけたいディレクトリに配置します。特定の1ページだけに認証をかけたい場合も、そのページが含まれるディレクトリ単位での設定になる点に注意してください。
アップロード後、対象のディレクトリにブラウザからアクセスすると、IDとパスワードの入力画面が表示され、Basic認証の設定は完了です。
Basic認証が効かないときの原因と対処法

Basic認証を設定したのに認証画面が表示されない、または正しいIDとパスワードを入力してもアクセスできない場合、いくつかの設定ミスが原因として考えられます。ここでは、よくある原因とその対処法を紹介します。
.htaccessの記述ミス
.htaccessのAuthType、AuthName、AuthUserFile、Requireといった項目のスペルミスや記述漏れがあると、Basic認証自体が正しく機能しません。特に大文字・小文字の違いや、余分なスペースは見落としやすいポイントです。
一度.htaccessの内容を見直し、各項目が正しい記述になっているかを1行ずつ確認しましょう。
.htpasswdのパス指定ミス
.htaccessのAuthUserFileに記載した絶対パスが間違っていると、.htpasswdファイルが読み込まれず、Basic認証はエラーになります。サーバーパネルで確認したパスと、実際に.htpasswdをアップロードした場所が一致しているかを確認してください。
パスの末尾に.htpasswdというファイル名まで含めて記載しているか、ディレクトリ名のスペルミスがないかも見直しのポイントです。
パスワードがハッシュ化されていない
.htpasswdに記載するパスワードは、平文ではなくハッシュ化された状態である必要があります。手作業で平文のパスワードを記述してしまうと、Basic認証は正常に動作しません。
オンラインのハッシュ化ツールを使って生成したハッシュ値を、そのまま.htpasswdに貼り付けているか確認してください。
特殊文字・全角文字を使っている
.htaccessや.htpasswdに記述するユーザー名やパスワードに、特殊文字や全角文字が含まれていると、文字コードの違いによってBasic認証が正しく認識されない場合があります。
IDとパスワードは、できるだけ半角英数字のみで設定することをおすすめします。
Basic認証の解除手順
Basic認証を解除するには、まず.htaccessファイルを開き、AuthType、AuthName、AuthUserFile、Requireなど、Basic認証に関する記述をすべて削除します。.htaccessに他の設定が含まれている場合は、それらを残したままBasic認証の部分だけを削除してください。
次に、.htpasswdファイルをサーバーから削除します。
設定解除後は、対象のディレクトリにブラウザでアクセスし、IDとパスワードの入力画面が表示されないことを確認します。キャッシュの影響を避けるため、シークレットモードや別のブラウザで確認すると確実です。
まとめ
Basic認証は、.htaccessと.htpasswdの2つのファイルを用意するだけで、ホームページの特定ディレクトリに手軽にアクセス制限をかけられる仕組みです。テストサイトの公開前確認や社内向けコンテンツの共有など、さまざまな場面で活用できます。
設定にはAuthUserFileのパス指定やパスワードのハッシュ化など、いくつか注意すべき点がありますが、手順通りに進めれば導入は難しくありません。HTTPSとの併用を前提に、必要な範囲だけにBasic認証を活用してみてください。
