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

时间:2015-12-25 09:33:34

标签: nginx server static-content

我创建了一个目录调用库,需要身份验证才能访问。完成身份验证后,我想列出用户的库中的所有文件。我试过autoindex无济于事,我发现的大多数材料并不能涵盖身份验证是否会影响任何内容。

非常感谢任何帮助,谢谢。

button = waitForObject("{type='QPushButton' text='OK'}")
waitFor(lambda: not button.enabled)

1 个答案:

答案 0 :(得分:2)

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

要向不同的用户提供不同的静态文件,请考虑基本身份验证将设置$remote_user变量(请参阅docs)用于使您的配置动态化。

例如,如果您想为每个用户ID(在同一个/library网址)提供不同的文件夹,则可以使用以下块:

location /library {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
    alias /usr/share/nginx/html/$remote_user/;
}

假设您的文件夹以用户的ID命名并位于该路径中。

如果用户未通过基本身份验证,则会显示403 Forbidden错误,您可以使用error_page指令处理该错误,以显示比基本错误更有用的内容。同样,如果用户可以成功进行身份验证并且相应的文件夹不存在,他们将看到404,您可以使用error_page指令再次处理。