从隐藏目录转到文件服务器

时间:2018-03-10 17:01:34

标签: go

我正在使用net/http的{​​{1}}处理程序为certbot设置文件服务器处理程序,并遇到一些奇怪的行为,将文件服务器的根目录设置为隐藏目录。

我的目录结构如下:

FileServer

所有用户/组/权限相同。

以下处理程序无法提供test.txt(为GET /.well-known/test.txt返回404):

certbot/
 |- .well-known/
 |    |- test.txt
 |- well-known/
      |- test.txt

然而,这些都有效:

http.Handle("/.well-known/", http.StripPrefix("/.well-known/", http.FileServer(http.Dir("./certbot/.well-known"))))

我想知道为什么在从http.Handle("/.well-known/", http.StripPrefix("/.well-known/", http.FileServer(http.Dir("./certbot/well-known")))) http.Handle("/.well-known/", http.StripPrefix("/.well-known/", http.FileServer(http.Dir("./certbot/.well-known/")))) 提供而不是从./certbot/.well-known提供时,我必须添加尾部斜杠。 net/http source code中没有任何内容会导致这种情况发生。 http.Dir documentation表示它将允许访问以句点开头的目录。为什么在一个处理程序中需要尾部斜杠而不是另一个处理程序?

我正在使用CentOS 7 Digital Ocean液滴上的v1.9.2。

0 个答案:

没有答案