読者です 読者をやめる 読者になる 読者になる

nginx.confのlocation

nginxのconfigは

location /admin/ {
   # なんか設定 A
}
location /admin/hoge/ {
   # なんか設定 B
}

と書くと /admin/ 以下、例えば /admin/fuga/ ではAの設定が有効になりますが、 /admin/hoge/ ではAの設定は有効にならず、Bに書いた設定のみが有効になります。これ、BASIC認証の設定だって例外ではないですよ。以下のような設定をしてしまうと

location /admin/ {
    auth_basic "Administrator Only";
    auth_basic_user_file "/var/www/htpasswd";
}
location /admin/logs/ {
    autoindex on;
    alias /var/log/html/;
}

/admin/ 以下へのアクセスにはBASIC認証が必要になりますが、 /admin/logs/ 以下は認証フリーになってしまいます。一度認証してしまうと以後そのセッションでは認証プロンプトが出ないため、下の階層で無効になっている事に気付かないことがあり、注意が必要です。