使用 nginx 在位置指令中提供文件?

使用 nginx 在位置指令中提供文件?

我在目录“/var/www/something”中有各种文件。我的 nginx 服务器的正常根目录是“/var/www/html”。

现在我只想提供文件“/var/www/something/file.exp”作为http://someserver.org/ecos/file.exp


我当前的配置使用类似这样的内容:

location =/ecos/file.exp {
   rewrite '^/ecos/(.*)$' '/$1' last;
   root /var/www/something;
}

,但它不起作用。

我究竟做错了什么?

答案1

您必须调整重写以使用break,而不是last

位置 = /ecos/file.exp {最后
   重写 '^/ecos/(.*)$' '/$1'休息
   根目录/var/www/某物;
}

据我了解:

使用break,服务器将使用当前位置的根目录查找文件:

位置 = /ecos/file.exp {
   ...
   根目录/var/www/某物;
}

使用last,服务器将继续处理并使用重写的位置:

位置 = / {
   ...
   根/一些/其他/根;
}

也可以看看:nginx url 重写:break 和 last 之间的区别

相关内容