nginx位置块配置

cyvaqqii  于 2023-10-17  发布在  Nginx
关注(0)|答案(1)|浏览(125)

我试图从我的web服务器的子文件夹中提供特定URL的文件,将URL与nginx的位置配置相匹配,它适用于第一级“/newsletter”,但不适用于深层次的“/newsletter/ID 456/”
这是我的nginx配置(部分):

root /home/myuser/www;
server_name www.mysite.it;

      location / {
          try_files $uri $uri/ /index.html =404;
      }
  
#    location ~^/newsletter/(.*)$ {
      location /newsletter {
                root /home/myuser/www/newsletter;
#             try_files $uri $uri/ /index.html;
#             try_files $uri $uri/ /newsletter/index.html;
}

正如你所看到的,我做了很多测试,但没有一个工作。我的目标是提供这种类型的URL:“https://www.mysite.it/newsletter/myid“并从该目录“/home/myuser/www/newsletter”提供文件。
如果我数字“https://www.mysite.it/newsletter“它的作品,但如果我数字“https://www.mysite.it/newsletter/A5143“它不。
我能想出解决的办法。
谢谢.

j2qf4p5b

j2qf4p5b1#

目录/home/myuser/www/newsletter中有文件,可以使用开始为/newsletter/的URL访问这些文件。但最终,您希望将开始为/newsletter/的请求路由到/home/myuser/www/newsletter/index.html
root的正确值是/home/myuser/www,因为newsletter已经是URL的一部分。有关详细信息,请参阅root指令。
但是由于这个值已经在server上下文中定义了,所以不需要在location上下文中重复它。
举例来说:

root /home/myuser/www;
...
location /newsletter {
    try_files $uri $uri/ /newsletter/index.html;
}

相关问题