Configuration nginx忽略位置部分

Configuration nginx忽略位置部分,configuration,nginx,alias,Configuration,Nginx,Alias,我花了一个小时寻找答案,但除非你知道词汇,否则很难找到答案。我想要的是非常简单的。我有一个这样的服务器: server { listen 80; server_name test.dev; root /srv/www; location / { index foo.html; } location /foo { index foo.html; } location /bar { index foo.html; } } 我想要的是

我花了一个小时寻找答案,但除非你知道词汇,否则很难找到答案。我想要的是非常简单的。我有一个这样的服务器:

server {
  listen 80;
  server_name test.dev;
  root /srv/www;

  location / {
    index foo.html;
  }

  location /foo {
    index foo.html;
  }

  location /bar {
    index foo.html;
  }
}
我想要的是/、/foo和/bar都指向完全相同的文件。换句话说,我希望完全忽略位置部分。只需从根目录中提供我告诉您要提供的文件


别名似乎不是答案,它不知道应该为哪个文件提供服务。

尝试将每个符合条件的位置重定向到将为该文件提供服务的命名位置

server {
    ...
  error_page 418 = @response;

  location /foo {
    return 418;
  }
  location /bar {
    return 418;
  }
  location @response {
    index response.html;
  }
}

我可能会使用重写

server {
  listen 80;
  server_name test.dev;
  root /srv/www;

  location / {
  index foo.html;
  rewrite  ^/foo(.*)$ /$1  last;
  rewrite  ^/bar(.*)$ /$1  last;
  break;
  }

}

诸如此类的事情是的,我想你可以从这里找到答案:)

谢谢你的回复。虽然我完全相信这会起作用,但当这不是错误时,我对返回错误代码感到非常不舒服。我知道默认情况下,nginx将该位置解释为文件系统路径的一部分,但必须有一种方法来覆盖此行为。。。