Nginx在经过身份验证的页面后面提供静态内容

Nginx在经过身份验证的页面后面提供静态内容,nginx,server,static-content,Nginx,Server,Static Content,我创建了一个目录调用库,它需要身份验证才能访问。完成身份验证后,我想为用户列出库中的所有文件。我已经尝试了自动索引,但没有任何效果,而且我发现的大多数材料都不包括身份验证是否会影响任何内容 非常感谢您的帮助,谢谢 server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.html ind

我创建了一个目录调用库,它需要身份验证才能访问。完成身份验证后,我想为用户列出库中的所有文件。我已经尝试了自动索引,但没有任何效果,而且我发现的大多数材料都不包括身份验证是否会影响任何内容

非常感谢您的帮助,谢谢

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    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/ =404;
            # Uncomment to enable naxsi on this location include
            # /etc/nginx/naxsi.rules
    }

    location /website {

    }

    location /library {
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }

您的
位置/库
块将强制要求进行基本身份验证,并将
/usr/share/nginx/html/library
中相同的静态文件提供给所有能够成功进行身份验证的用户。简而言之,所有成功进行身份验证的用户将在当前配置中看到相同的文件

为不同的静态文件服务于不同的用户,请考虑基本身份验证将设置<代码> $ReleTyAuth[/Cuff>变量](参见),您可以利用它来使您的配置动态化。 例如,如果您想为每个用户ID提供不同的文件夹(在相同的

/library
URL),您可以使用如下块:

location /library {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
    alias /usr/share/nginx/html/$remote_user/;
}
假设文件夹以用户ID命名并位于该路径

如果用户未能通过基本身份验证,他们将显示403禁止的错误,您可以使用
error\u page
指令处理该错误,以显示比基本错误更有用的内容。同样,如果用户可以成功地进行身份验证,但相应的文件夹不存在,他们将看到404,您可以再次使用
error\u page
指令来处理