wp-login.phpに.htpasswdを使用してBASIC認証をかける
2022-12-31T02:28:06.699Z
ユーザー登録のあるサイト構築していたので、WordPress標準のユーザー登録画面(/wp-login.php?action=register
)をアクセス禁止にするためBASIC認証をかけた時のメモ。
基本は以下のサイトの通りだが、.htaccess
に記述する.htpasswd
へのパスが間違っており 500 Internal Server Error を連発してしまった。
.htaccessの記述
<Files wp-login.php>
AuthUserFile /{ディレクトリ}/.htpasswd
AuthGroupFile /dev/nul
AuthName "Restricted Area"
AuthType Basic
require valid-user
</Files>
この{ディレクトリ}
の部分がFileZillaなどのFTPツールのパスや、通常のサイトのURLでも違う。
上記のサイトに確認方法が書いてあるが以下のコードを記述したPHPファイルを同じディレクトリにアップしアクセスして確認する。
<?php
echo __DIR__;
?>
今回はエックスサーバーだったが、以下のようなディレクトリ名だった。
/home/サーバーID/ドメイン名/public_html
.htpasswdの作成
基本は無いので作成する。基本テキストファイルを作成してアップしてから、サーバー上でリネームするとのことだが、Macのテキストエディターでリッチテキスト書類(.rtf
)で作成するとバグりそうだったので、htaccessをコピーしてそれをリネームして作成し(.txt
ファイルになった)、それをアップしてからさらに.htpasswd
にリネームした。
User Registration プラグインを使っている場合
User Registration プラグインを使っている場合は Settings > Prevent Core Login のチェックをすることでアクセス禁止にできる。