2021/08/04
WordPressにおいてプラグインなしでベーシック認証(Basic認証)をかける方法!
ホームページを制作中であったり一部情報公開を停止したいなど、何かしらの理由でホームページを一時的に閲覧できないようにしたいことがあると思います。そんな時に役立つのが「ベーシック認証(Basic認証)」です!ユーザー名とパスワードを入力しないとホームページが閲覧できなくなるアレです。
WordPressでBasic認証をかける方法はプラグインを使う方法が簡単なのですが、特定のディレクトリなどに認証がかからない場合もあるので、今回はプラグインなしでBasic認証をかける方法をご紹介します。
ベーシック認証(Basic認証)とは?
サーバーのファイルに記述をすることによりWEBサイトの特定領域にアクセス制限をかけることです。Basic認証を設定すると認証ダイアログが立ち上がりIDとパスワードを求められるようになります。
Basic認証はディレクトリ単位でも設定ができるので非常に便利です。ただしBasic認証はクロールをブロックをするので、既にインデックスされたページをnoindexしたい場合は先にnoindexを設定してからBasic認証をかけるようにしましょう。
それでは早速WordPressにおいてプラグインを使わずBasic認証を設定する方法をご紹介します!
①Basic認証を設定したいディレクトリを確認する。
Basic認証はサーバーのディレクトリ単位で設定します。制限をかけたいディレクトリの.htaccessファイルを編集する必要があるので、まずは設定したいディレクトリのサーバーパスを調べます。サーバーパスを調べるにはまずは以下の内容を記述したphpファイルを作成します。ファイル名はなんでも良いんですが、とりあえず今回は「test.php」とします。
<?php
echo __FILE__;
?>
今回はサイト全体にBasic認証をかけていく前提でお話しします。ドメイン直下のディレクトリ(「wp-admin」や「wp-content」などのフォルダがおいてあるディレクトリ)に「test.php」ファイルを設置します。そして当サイトであれば「https://dagaya-web.com/test.php」にアクセスするとサーバーパスが返ってきたページが表示されるのでメモ帳などにコピーをしておきます。サーバーパスが誰でも見れる状態は危険なので、サーバーパスをコピーしたら必ず「test.php」は削除しておいてください。
②「.htpasswd」ファイルを作成する。
ツールを使って認証用のパスワードを暗号化します。https://www.luft.co.jp/cgi/htpasswd.phpにアクセスし、IDとパスワードを入力し「生成」を押してください。パスワードが暗号化された文字列が生成されますので、それをまたコピーして控えておきます。
「.htpasswd」というファイルを新たに作成し、上でコピーした暗号化された文字列を入力してください。作成した「.htpasswd」ファイルを希望のディレクトリにアップロードします。今回はサイト全体にBasic認証をかけるので、「test.php」と同様にドメイン直下のディレクトリに設置します。
③「.htaccess」ファイルを編集する。
WordPressが稼働しているサーバーの場合、多くのケースで「.htaccess」ファイルがサーバーに既に設置してあります。今回はドメイン直下のディレクトリに存在する「.htaccess」を編集します。「.htaccess」ファイルの記述を間違えると500エラーなどでサイトの閲覧ができなくなります。必ずバックアップをとってから編集してください。
おそらく「.htaccess」を開くと以下のような記述があると思います。
# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
#BEGIN〜#ENDの間は触らずに、「# END WordPress」の後に以下の記述を追加します。
AuthUserfile /*①でコピーしたサーバーパス*/.htpasswd
AuthGroupfile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
これを保存し、サイトにアクセスするとBasic認証がかかったと思います!
まとめ
今回はプラグインを使わずにBasic認証を設定する方法をご紹介致しました。上記の手続きも面倒だよって方はぜひ弊社までご依頼ください!