背景
WordPressのセキュリティ系のプラグインを導入するときに、本番環境にいきなり入れるとサイト動作が不安定になったり、見られなくなったりすることがあるので、まずテスト環境を作成して検証してから安心して本番環境に導入したいです。
All In One WP Security & Firewall
メジャーなプラグインで「All In One WP Security & Firewall」というのがあります。
主に.htaccessの設定でセキュリティをどうにかしてくれるものです。
IP制限やその他のアクセス制限、ログイン記録を取ってくれたり、危ない機能を使えなくしてくれたりととても助かります。
しかしこれを設定したらテスト環境のBASIC認証が動かなくなってスルーで閲覧できるようになってしまいました。
結論からいうと
bot除けみたいな.htaccessの記述があるのですが
# Apache >= 2.3
<IfModule mod_authz_core.c>
<RequireAll>
Require all Granted
Require not env bad_bot
</RequireAll>
</IfModule>
この「Require all Granted」という記述がBasic認証の「Require valid-user」と干渉して全部許可されてしまうことになっていました。
# Apache >= 2.3
<IfModule mod_authz_core.c>
<RequireAll>
Require valid-user
Require not env bad_bot
</RequireAll>
</IfModule>
この部分を手動で変更して適用したところ、BASIC認証が効くようになりました。
注意
この状態で「All In One WP Security & Firewall」の設定を変更して保存すると、記述は元に戻ってしまうので、変更が発生したら都度ここの書き換えを実施してください。