location /projects {
alias /home/deploy/www/projects_vue;
index index.htm index.html;
}
因为这是一个前端写的项目,本来想着这样匹配到 index 就可以了,但是没想到如果访问***/projects/orders
之类的域名,就会出现 404,但是找了一下,没有发现相关的 nginx 该如何写这个 location,希望/projects
后面的所有域名的去到 index.html 中呢?多谢。
根据楼下小伙伴的提示,把配置改成:
upstream example {
server unix:///tmp/example.sock;
}
server {
listen 80;
server_name www.example.io;
root /home/deploy/example_backend/current/public;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
if (-f $request_filename/index.html) {
rewrite (.*) $1/index.html break;
}
if (-f $request_filename.html) {
rewrite (.*) $1.html break;
}
if (!-f $request_filename) {
proxy_pass http://example;
break;
}
}
location /project {
alias /home/deploy/example_frontend;
try_files $uri $uri/ /index.html?/$request_uri;
}
}
可是仍然是原来的问题,不同的是/project/xxxx
这类域名,就跑去读取 rails 了,而不是 404 了。目前应该如何改进会更好?