【发布时间】:2020-06-10 07:58:45
【问题描述】:
我想提供来自根文件夹的索引文件和来自根文件夹的子文件夹。
我的 nginx 服务器配置如下:
server {
listen 80;
server_name localhost;
root /data/;
index index.html index.htm index.txt;
location / {
}
location /a {
alias /data/a/;
}
}
我的目录结构如下:
/data/:
a index.txt
/data/a:
index.txt
如果我然后执行curl localhost,我会得到文件/data/index.txt 的内容。
但是curl /localhost/a 给了我一个301。
curl localhost/a/index.txt 有效。
为什么我无法使用 curl /localhost/a 访问我的 index.txt?
我尝试在location /a 块中使用root 而不是alias,还尝试为位置/a 指定index.txt,但没有成功。
我看到类似的帖子,例如 Nginx location configuration (subfolders) 但还没有找到答案。
【问题讨论】:
-
我看到当我第一次调用
curl localhost/a/index.txt,然后马上调用curl localhost/a时,它可以工作,但是 nginx 似乎又忘记了这一点,我得到了 301。 -
我不确定我是否正确,但您为什么要尝试为相同的 uri ex 创建别名:如果您浏览
/a,它将自动浏览a子文件夹并提供索引。 txt 在这种情况下不需要别名!
标签: http nginx webserver http-status-code-301 httpserver