私のドメインの/ admin /セクションを保護するために.htpasswdを使用しようとしています。Nginxのフォルダ内のファイルを.htpasswdを使ってパスワードで保護する
私は正常にこの設定を使用して、ルートのindex.phpファイルを保護することができるよ:
location /admin/ {
try_files $uri $uri/ =404;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
しかし、そのフォルダ内の関連ファイルはまだ表示できます。たとえば、http://domain.com/admin/whatever.php - ページが読み込まれると、Nginxのパスワード認証が表示されますが、単にキャンセルしてページを表示するだけで済みます。
調査したところ、regex wildcardsの使用に失敗しました。どのように私は、パスワードだけでなく、ルートインデックス、および任意のサブフォルダとファイルの両方を保護することができます
location "~^/admin/.$" {
try_files $uri $uri/ =404;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
location "~^/admin/*\$" {
try_files $uri $uri/ =404;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
?過去の/ admin /はすべてアクセス不可能でなければなりません。
あなたは '〜^/admin /.*" 'を試しましたか? – SztupY
それはうまくいきました、ありがとう!あなたはその構文をどうやって知っていましたか? – some1