我已将 nginx 配置为使用 auth_basic 对目录进行密码保护。密码提示出现,登录工作正常。
但是......如果我拒绝输入我的凭据,而是连续多次点击转义,页面最终将加载没有 CSS 和图像。
换句话说,不断告诉登录提示消失将在某些时候允许页面加载。
这是 nginx 的问题,还是我的配置问题?
这是我的虚拟主机:
31 server {
32 server_name sub.domain.com;
33 root /www/sub.domain.com/;
34
35 location / {
36 index index.php index.html;
37 root /www/sub.domain.com;
38 auth_basic "Restricted";
39 auth_basic_user_file /www/auth/sub.domain.com;
40 error_page 404 = /www/404.php;
41 }
42
43 location ~ \.php$ {
44 include /usr/local/nginx/conf/fastcgi_params;
45 }
46 }
我的服务器运行 CentOS + nginx + php-fpm + xcache + mysql
您的配置,nginx 将只使用最具体的位置块。因此,当您请求 *.php 文件时,它将使用 location ~ .php$ 块并且看不到 auth 基本配置。
您的 .css、.js 等文件工作的原因是因为它们与 PHP 位置块不匹配
您还需要将身份验证基本配置添加到 php 文件位置块。