制作のご相談はこちら
htaccessでWordPressのベーシック認証を設定する方法

公開日 : 2018年02月21日

htaccessでWordPressのベーシック認証を設定する方法

新規サイトやページを作る際にまだこのページ見られたくない!っていう時ありますよね?
その時にはベーシック認証を設置すると、アイパスが分かる人だけがそのページを見ることが出来ます。

WordPressではベーシック認証を導入してくれるプラグインがありますが、プラグインに頼りすぎると、互換性が無かったり、他のプラグインと干渉する場合があるので、後々面倒なことになる可能性もあります。

「WordPress ベーシック認証 プラグイン」でネットで調べると、よくヒットするのが、
WP Basic Auth」です。しかしこのプラグインは最終更新が3年前なので、少し信用性に欠けます。
導入するならコンスタントにバージョン対応されているプラグインがいいですよね。

今回はプラグインを導入せずにベーシック認証を設定する方法を書きます。

.htpasswdファイルを作成する

まず、ユーザー名とパスワードを設定するためのhtpasswdファイルを作成します。
ベーシック認証をするときはhtaccessと併用して使います。

書き方

ユーザー名:暗号化されたパスワード

例)aekana:ZX4wrJEgKLn8s(”password”を暗号化)
htpasswdに記載するのはこれだけです。
ユーザー名やパスワードは単純なワードの組み合わせは危険なのでご注意ください。

パスワードは暗号化する必要があります。
暗号化してくれるオンラインツールがありますので、そちらを利用します。
.htaccessファイルを簡単作成「.htaccess Editor」
htpasswdファイル生成(作成)
BASIC認証用 パスワード暗号化

これをtxtファイルで保存し、サーバーにアップロードします。
この時既にhtaccessがサーバー上にある場合は、htaccessと同じ階層にアップロードしてください。
アップロードしたファイル名を.htpasswdと変更します。

.htaccessファイルを作成する

書き方

AuthUserFile .htpasswdのフルパス
AuthName "メッセージ"
AuthType Basic
require valid-user

AuthUserFileには.htpasswdのフルパスを記入します。
htpasswdのフルパスの調べ方はこちら

メッセージはベーシック認証のダイアログが出た際に表示される文言のことです。
日本語だと文字化けする可能性がありますので、英語で書くと良いです。
例)Please enter user name and password.(ユーザー名とパスワードを入力してください。)

WordPressの場合はインストールした時点で既にhtaccessファイルが存在しています。
その中にはこのように書かれていると思います。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

この場合はこのhtaccessファイルに今回のベーシック認証のテキストを追加してください。
追加して保存しましたら、サーバーにアップロードしてください。

正常に動くか確認する

2つのファイルをアップロードしましたら、ブラウザ確認します。
ベーシック認証をかけたいURLにアクセスしてベーシック認証のダイアログが出て、ユーザー名とパスワードを入力するとページが表示されれば成功です。

以上です。
契約されているサーバーによっては管理画面からアクセス制限の設定が出来る場合もありますので、そちらの試してみるのもおすすめです。