尽pipe网站访问被阻止,但Nginx仍然在服务于静态文件

我在我的centos服务器上安装了nginx。 我阻止了所有外部访问我正在testing的网站。 用这个代码。

location / { auth_basic "Administrator Login"; auth_basic_user_file /home/config-files/.htpasswd; } 

问题是它不阻止访问静态文件。 我仍然可以像这样访问文件。

 wp-admin/images/icons32-vs-2x.png wp-admin/css/colors/midnight/colors.min.css wp-content/themes/testtheme/style.css 

为什么Nginx不能阻止访问这些文件。

编辑这里是完整的虚拟主机文件。

 server { listen 80; server_name www.domainname.com; root /home/myuser/domainname.com/public; index index.html index.php; access_log /home/myuser/domainname.com/logs/access.log; error_log /home/myuser/domainname.com/logs/error.log; location ~ /\.svn/* { deny all; } location ~ \.(htaccess|htpasswd) { deny all; } location ~ \.conf$ { deny all; } location / { try_files $uri $uri/ /index.php?$args; auth_basic "Administrator Login"; auth_basic_user_file /home/config-files/.htpasswd; } location ~ \.(css|js) { rewrite ^(.*/?)([az]+)-([0-9]+)\.(css|js)$ /$1$2.$4 last; } rewrite /wp-admin$ $scheme://$host$uri/ permanent; location ~* \.(js|css)$ { expires 30d; log_not_found off; } location ~* \.(?:ico|gif|jpe?g|png|svg)$ { expires 180d; add_header Pragma public; add_header Cache-Control "public"; log_not_found off; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini include fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9000; } rewrite ^(.*)/undefined$ /$1 permanent; rewrite ^(.*)/undefined/$ /$1 permanent; } 

nginx是匹配的“位置”部分不是按顺序,而是最具体的, 在这里阅读。 然后,只将最匹配的位置部分应用到请求中,而不是其他部分。 因此,“位置/”将仅对没有任何其他位置部分(全部更具体)匹配的请求起作用。

尝试将auth指令放在任何位置括号之外,直接放入服务器{}中。