是否能实现请求 www/path* 返回 www/index.html 但不做 302 重定向?

2016-07-18 23:25:01 +08:00
 learnshare

1. 背景

在做 Angular.js 的单页面应用,没玩过 Nginx 。

之前一直是用 abc.com/#/path 这种形式的路由,但 Angular.js 本身也 支持 abc.com/path 这种形式的路由。

那一般来说,服务器会给 abc.com/path 这个请求返回 www/path/index.html ,但 Angular.js 应用的入口是 www/index.html 。

2. 需求

用户访问 www/ 及其子目录时,都返回 www/index.html ,但不做 302 重定向(保持原来的 URL )。

Nginx 的配置是?

2805 次点击
所在节点    NGINX
7 条回复
jswh
2016-07-18 23:45:53 +08:00
具体配置补贴,自己补贴 nginx rewrite 吧,如果版本比较新,可以搜 nginx try
jswh
2016-07-18 23:46:24 +08:00
@jswh 自己补贴 -> 自己 google
lslqtz
2016-07-19 08:46:09 +08:00
alias ?
sdzxwxlsj
2016-07-19 08:46:47 +08:00
rewrite
learnshare
2016-07-19 11:01:22 +08:00
@jswh
@lslqtz
@sdzxwxlsj

正在摸索 Nginx ,今天应该能写出一个满足需要的配置
learnshare
2016-07-19 14:27:03 +08:00
@jswh
@lslqtz
@sdzxwxlsj

目前已经可用。麻烦几位帮我看一下,是否合理:

https://gist.github.com/LearnShare/276374fbbc46cfde8bea6e2d46ec32f7

Thanks :P
garrydzeng
2016-07-19 23:36:49 +08:00
server {
location ~ ^/www {
rewrite ^ /index.html last;
}
}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/293331

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX