AWS LightsailでWordPressを運用しているのですが、特定のディレクトリにBasic認証を設定する方法がわからずハマったので、一通りの手順をメモしておきます。
WordPressと言えば.htaccess
でルーティングの起点となるファイルにアクセスさせているので確認してみるとお決まりの設定がありました。
/home/bitnami/apps/wordpress/htdocs/.htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
このファイルにBasic認証の設定すればイケるかなって思いやってみましたが、このファイル自体効いてませんでした。
※/home/bitnami/apps/wordpress/htdocs/.htaccess
に設定しても意味がない
なのでapacheのconfigファイルで設定することにしました。
まずは.htpasswd
を任意のディレクトリに作成します。
$ htpasswd -c -b ~/apps/.htpasswd [user] [password]
configファイルに設定を追記します。
$ vim ~/apps/wordpress/conf/httpd-app.conf
~/apps/wordpress/conf/httpd-app.conf
# ↓を追記
<Directory "/opt/bitnami/apps/wordpress/htdocs/[特定のディレクトリ]/">
AuthUserFile /home/bitnami/apps/.htpasswd # 作成した.htpasswdをフルパスで指定
AuthGroupFile /dev/null
AuthName "Basic Auth"
AuthType Basic
Require valid-user
</Directory>
基本的なBasic認証の設定と変わらないので、指定するディレクトリだけ注意してもらえば大丈夫かと。
apps
にシンボリックリンクが張ってあるので、実体は/opt/bitnami/apps/wordpress/htdocs/
になります。
$ ls -l
apps -> /opt/bitnami/apps
最後にapacheを再起動すれば完了です。
$ sudo /etc/init.d/bitnami restart apache
お疲れ様でした😊