ベーシック認証(Basic認証)とは?

サーバーのファイルに記述をすることによりWEBサイトの特定領域にアクセス制限をかけることです。Basic認証を設定すると認証ダイアログが立ち上がりIDとパスワードを求められるようになります。

210803ブログ画像02

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とパスワードを入力し「生成」を押してください。パスワードが暗号化された文字列が生成されますので、それをまたコピーして控えておきます。

210803ブログ画像03

「.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認証を設定する方法をご紹介致しました。上記の手続きも面倒だよって方はぜひ弊社までご依頼ください!

記事に関するご意見・ご質問や、その他お問合せはこちら!