如何在ngnix中的location属性中编写正则表达式?

时间:2017-04-19 17:46:54

标签: reactjs nginx

我有一个单页应用程序(SPA),我想配置nginx来执行任何请求重定向到index.html根文件。

这是我的配置

root /my-company/my-websites

location /my-spa {
  alias /my-company/my-websites/my-spa;
}

location /my-another-website {
  alias /my-company/my-websites/my-another-website;
}

如果我打开www.mywebsite.com/my-spa,服务器会回复我的SPA。没关系。 如果我打开www.mywebsite.com/my-spa/other/other,服务器会响应404错误。

我希望服务器始终响应我的SPA,无论输入的是什么网址。

我想尝试这样的事情:

root /my-company/my-websites

# I inserted regex here
location ^/my-spa/(.+)$ {
  alias /my-company/my-websites/my-spa;
}

location /my-another-path {
  alias /my-company/my-websites/my-another-website;
}

注意:文件夹/ my-company / my-websites / my-spa有一个index.html文件。

我希望你理解我的问题,谢谢!!

1 个答案:

答案 0 :(得分:0)

您可以使用try_files指令来实现此目的。 try_files将首先尝试解决此问题。如果不渲染index.html

location /my-spa {
  alias /my-company/my-websites/my-spa;
  try_files  $uri /my-company/my-websites/my-spa/index.html =404;
}