ITTI STAFF
BLOG

イッティWEBスタッフの制作ブログ

WordPressのログインにBasic認証を設定する

プラグインに影響しないBasic認証をWordPressに設置する方法です

WordPressのログインにBasic認証を設定すると、プラグインによっては「admin-ajax.php」にアクセスできなくなることがあり、プラグインが正常に動作しなかったり、下層ページにアクセスするたびに「ログイン」を求めてきたりします。

admin-ajax.phpにも影響しないように.htaccessでBasic認証を設定します。

用意するファイルは「.htpasswd」と「.htaccess」の2つになります。

.htpasswdにログイン用のIDとパスワードを記載する

例えば、下記のIDとパスワードを設定するとします。

■ログインID:zxman
■パスワード:tR4Nhy7U

IDの「zxman」とパスワード「tR4Nhy7U」を暗号化します。
下記のサイトで暗号化できます。

すると「zxman:rvg4S7uNzX.AM」のようなIDと暗号化されたパスワードが生成されます。

.htpasswdを用意する

ファイル「.htpasswd」を用意して、生成されたIDとパスワードを記入します。

.htpasswd
zxman:rvg4S7uNzX.AM

WordPressのディレクトリ「wp-admin」に.htpasswdをアップロードします。

.htaccessにBasic認証を設定する

ファイル「.htaccess」を用意して、下記をコピペします。

.htaccess
AuthUserFile ファイルまでのパス/wp-admin/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
<FilesMatch "(admin-ajax.php)$">
Satisfy Any
Order allow,deny
Allow from all
Deny from none
</FilesMatch>

一行目のAuthUserFileは、サーバーの環境によって異なります。

「/home/www/wp-admin/.htpasswd」や「/var/www/vhosts/hogehoge.com/httpdocs/wp-admin/.htpasswd」など、適宜変更してください。

.htaccessを「wp-admin」ディレクトにアップロード

「.htpasswd」ファイルと同じ階層のディレクトリ「wp-admin」に「.htaccess」をアップロードして完了です。

WordPressのログイン画面にアクセスして、ID、パスワードを求められるアラートが表示されるので、ID、パスワードでログインできれば成功です。

ログイン画面にBasic認証を設定するメリット

WordPressは、ログイン、パスワードを入力されると一回一回データベースを参照します。
このためブルートフォースアタックをされるとデータベース参照に負荷がかかり、サーバーがダウンすることになります。

ログイン画面への不正アクセスが多い場合は、Basic認証による2段階ログインを設定するとサーバーへの負担を大幅に軽減することができます。

新しい記事

東京のWEB制作会社イッティ