この記事は、今までBASIC認証を設定したことがない人向けに書いています。この記事を読むことで、BASIC認証とは何か、設定に必要な .htaccess や .htpasswd ファイルについて、WordPressの管理画面へBASIC認証を設定する場合の基礎知識などを得ることができます。

BASIC認証によるアクセス制限とは

ウェブページを表示する際に、ユーザー名とパスワードの入力を求める画面を見かけたことはありませんか?これは、BASIC認証と呼ばれ、ユーザー名とパスワードを入力しないとアクセスを拒否し、ページを表示できなくするサーバー側の機能です。

BASIC認証はどんな時に使う?

WordPressでは、セキュリティ対策のひとつとして管理画面にアクセス制限をかけたい時によく利用します。他には、テスト中や公開前のサイトなど、仮に第三者がアクセスしてもページを表示できないようにしたり、簡易的な会員サイトとして特定のメンバーのみがコンテンツを閲覧できるようにしたい時などにも使います。

BASIC認証はどうやって設定する?

BASIC認証は、サーバー上に以下のファイルを設置することで設定できます。

  • .htpasswd:認証に使うためのユーザー名(ID)とパスワードを記述したファイル
  • .htaccess:Webサーバーの基本的な動作を制御するためのファイル

それぞれのファイルは、テキストエディタを使ってプレーンテキスト(書式情報を含まないテキスト形式)で作成します。文字コードはUTF-8(BOMなし)か、半角英数字記号のみの記述なら SHIFT-JIS でも EUC-JP でもOKです。改行コードは LF にします。記述の最後にひとつ改行を入れてください。

作成したファイルは、FTPソフトなどを使ってサーバーにアップロードします。アップロード後、ファイル名の先頭がドット(.)で始まるように変更して隠しファイルにします。他、各ファイルについてもう少し説明します。

.htpasswd

.htpasswd の記述例

 ユーザー名:暗号化したパスワード のように「ユーザー名」と「パスワード」をコロン(:)で区切って書きます。パスワードは暗号化した(MD5でハッシュ化)パスワードを使用します。パスワード生成サービスなどを利用すると便利です。

なお、セキュリティー上、.htpasswd はなるべくサーバーの非公開領域に設置する方がよいとされています。

.htaccess

BASIC認証の記述例

BASIC認証の設定時には、.htpasswd ファイルのある場所をサーバーの一番上の階層から示すサーバーのパス(フルパス、絶対パスとも呼ばれる)を書く必要があります。

また、.htaccess を設置すると、配下のディレクトリにもその設定が影響します。例えば、配下にサブドメインのディレクトリがある場合は、サブドメインのサイトにも影響します。

もっと簡単にBASIC認証を設定するには?

はじめてBASIC認証を設定する場合、テキストエディタやFTPソフトに慣れていないと、サーバーのパス?文字コード?暗号化?と少し難しく感じるかもしれません。

そこで、各サーバー会社の管理画面やWebFTPツールを使ってBASIC認証を設定する方法もあります。この方法の場合、以下のメリットがあります。これからはじめてBASIC認証を設定する人には分かりやすいと思います。ただ、BASIC認証の設定内容によっては .htaccess へさらに記述を追加する必要などがあります。

  • テキストエディタやFTPソフトを別途用意しなくてよい。
  • 暗号化したパスワードで .htpasswd ファイルを作成してくれるので、パスワード生成サービスを使う必要がない。
  • .htpasswd の保存場所を示すサーバーのパスを自動的に .htaccess 内に記述してくれる。

サイト全体にBASIC認証を設定してみよう

テキストエディタやFTPソフトを使い慣れている人向け

サイト全体にBASIC認証を設定するには、以下の記事を参考にしてください。この記事では、サーバーパスの調べ方や、.htpasswd ファイルを作成するジェネレーターについても解説しています。

WordPressの管理画面にBASIC認証を設定してみよう

.htpasswd ファイルをひとつ作成して設置し、以下に対してそれぞれの .htaccess にBASIC認証の記述を行います。

  • wp-admin フォルダ(管理画面全体)※ 配下にある admin-ajax.php はアクセスを許可する記述を加える
  • wp-login.php ファイル(ログイン画面)※ wp-login.php にのみBASIC認証を適用するように追記する
wp-admin配下の.htaccess
wp-login.phpと同階層の.htaccess

admin-ajax.php のアクセスを許可する理由

テーマやプラグインが Ajax と呼ばれる非同期通信を使用している場合があるため、「wp-admin」配下にある admin-ajax.php に対してはアクセス制限を適用しないように設定します。

テキストエディタやFTPソフトを使い慣れている人向け

具体的な手順は以下の記事で解説しています。

はじめて設定する人向け(サーバーの管理画面やWebFTPツールを使う方法)

エックスサーバー、さくらのレンタルサーバ、ロリポップ!レンタルサーバーの3つで実際に試してみました。ご利用のサーバーがあれば、ぜひお試しください。

以上、はじめてBASIC認証を設定する前に知っておくべきことをまとめてみました!

Follow me!