location設定に左右されない認証のかけ方
Wordpress などでマルチサイトやら色々設定していると、Basic 認証などかけたいときに、location ディレクティブの適用優先順位で混乱することがある。
そういうときは、下記のように記述すると、location ディレクティブの設定の影響は受けないので、すっきりかける。
http コンテキストで map で認証をかけたい場所を設定する。
map $request_filename $auth_realm { default off; ~*/wp-login\.php|/wp-admin/((?!admin-ajax\.php).)*$ 'wp-admin'; }
server など認証をかけたいコンテキストで認証をかける。
auth_basic_user_file /path/to/.htpasswd; auth_basic $auth_realm;