nginx忽略位置部分

时间:2012-03-10 22:31:06

标签: 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;
  }
}

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

Alias似乎不是答案,不知道它应该服务哪个文件。

2 个答案:

答案 0 :(得分:1)

我可能会使用重写。

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

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

}

像那样的东西,我想你可以从这里弄明白:)

答案 1 :(得分:0)

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

server {
    ...
  error_page 418 = @response;

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