RaspbianがインストールされたRaspberryPiを持っていて、パブリックwwwフォルダをhtpasswdで保護し、phpファイルを正しく渡し、.htpasswdと.dbファイルを拒否したいと思います。
しかし、これは私の設定では機能しません。ローカルネットワーク()のブラウザでサイトを呼び出すとhttp://192.168.0.12/test/page.php
正しく表示されますが、認証は不要で、設定が拒否されたにもかかわらず.htpasswdファイルと.dbファイルをダウンロードできます。
何が問題なの?最初に一致する位置ブロックのみを実行できますか?これをどのようにバイパスできますか?
"/usr/share/nginx/www"のフォルダ構造:
test
- data.db
- page.php
- .htpasswd
index.html
index.php
.htpasswd
私のnginxサーバーの設定:
server {
#listen 80; ## listen for ipv4; this line is default and implied
#listen [::]:80 default_server ipv6only=on; ## listen for ipv6
root /usr/share/nginx/www;
index index.html index.htm index.php;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.html;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
location /doc/ {
alias /usr/share/doc/;
autoindex on;
allow 127.0.0.1;
allow ::1;
deny all;
}
#pass the PHP scripts to PHP-FPM server listening on unix socket
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /testDb {
auth_basic "Admin Login";
auth_basic_user_file /usr/share/nginx/www/test/.htpasswd;
}
# deny access to .ht files
location ~ \.ht {
deny all;
}
# deny access to .db files
location ~ \.db {
deny all;
}
}