我有一个Nginx运行,端口3000上的Node.js。
location / { root /path/to/my/site; index index.html index.htm; try_files $uri $uri/ @node; } location @node { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://127.0.0.1:3000; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }
这完美的作品,当url不是一个文件时获取节点内容。 (所以这加载socket.io/socket.io.js罚款)。
现在我想要所有页面redirect到我的index.html在根。 所以当用户刷新//域/ with / extra / path; 我想运送根//domain/index.html。
我需要重写这个,但是这会破坏我检查节点文件。 所以我需要的东西只redirectGET /(url)/我的根/index.html,而不是GET文件。
添加到你的location /应该会导致任何请求用斜线来加载索引页面:
rewrite ^/.*/$ / last;
或者如果你想发送他们的浏览器redirect响应,所以他们的地址栏指向新的位置,交换last permanent (或redirect如果你更喜欢302上的301)。