我的用例非常简单:
/var/www
├── public/
│ └── index.html
└── app/
├── css/
├── js/
└── index.html
我想将public/index.html
作为未指向app/(.*)
的任何请求的后备目标网页,并在访问app/
时提供mydomain.local/app
的内容
此配置有什么问题?
server {
listen 80;
listen [::]:80;
listen 192.168.0.200:80;
server_name mydomain.local;
index index.html;
location / {
root /var/www/public/;
}
location /app {
root /var/www/;
}
}
答案 0 :(得分:0)
这是一种使用try_files指令的方法:
server {
listen 80;
listen [::]:80;
listen 192.168.0.200:80;
server_name mydomain.local;
index index.html;
location / {
root /var/www/public/;
try_files $uri /index.html;
}
location /app {
root /var/www/;
}
}
Nginx将尝试匹配$ uri,如果不匹配,它将进行内部重定向到index.html
来源:https://docs.nginx.com/nginx/admin-guide/web-server/serving-static-content/#trying-several-options