我用来静态提供文件的位置块是:
location ~ ^/git/?(.*)$ {
root /home/aoeu/git-webserver;
autoindex on;
try_files /$1 /$1/ 404;
}
大部分情况下都可以正常工作,只是当我访问网站的路径时,目录内/home/aoeu/git-webserver
以.
字符开头的文件和目录不包含在 nginx 返回的目录列表中。它们各自的子目录也一样。/git/
我可以手动在浏览器 URL 栏中输入以点为前缀的目录并浏览它(这似乎是一个非常尴尬的不一致,并且可能存在 nginx 的安全问题)。但在浏览其父目录时,我无法看到它并单击它。
我希望所有文件都是可见的,无论它们以什么字符开头。
答案1
根据这个reddit帖子缺少该功能。该线程链接到票557从 2014 年开始,它有一个补丁来添加一个配置选项,允许列出点文件。然而,问题尚未解决,快速查看源代码就会发现ngx_http_autoindex_handler()每当遇到以点开头的条目时,只需输入continue
:s,大约八九年后。
有可能从 trac 票证中应用补丁,无论是否需要做一些额外的工作来使其适应当代代码库。
为此,我放弃了 nginx,并用 lighttpd 取而代之。
# lighttpd config showing dot files in directory listings.
dir-listing.activate = "enable"
dir-listing.hide-dotfiles = "false"
答案2
现在可以使用fancyindex
模块显示点/隐藏文件