【发布时间】:2018-01-03 23:25:35
【问题描述】:
我有这样的结构。
- 项目根目录
- entry_point1
- index.html
- entry_point2
- index.html
- entry_point3
- index.html
- entry_point1
它开箱即用,当我路由到 mydomain/entry_point1 时,它提供正确的 index.html
但是,如果我想将域的 root(/) 或任何其他无法识别的路由路由到特定入口点怎么办? 例如:
我的域名/
mydomain/some/path mydomain/some/other/path
所有这些路径都必须重定向到 mydomain/entry_point3
但显然路线如下:
mydomain/entry_point1/some/resource
不会被重定向
我怎样才能做到这一点?
我也在使用 react router,所以像 mydomain/entry_point1/path/to/resource 这样的路由会被重写到入口点的索引文件中
提前致谢
编辑: 我最终得到了以下配置:
server {
root path/to/folder;
index index.html index.htm;
server_name mydomain;
location ~^\/entry1\.* {
try_files $uri $uri/ /entry1/index.html;
}
location ~^\/entry2\.* {
try_files $uri $uri/ /entry2/index.html;
}
location ~^\/entry3\.* {
try_files $uri $uri/ /entry3/index.html;
}
location ~* {
try_files $uri $uri/ /entry3/index.html;
}
}
现在的问题是,当我路由到 mydomain/ 时,它会将我重定向到:mydomain/entry3/entry3/entry3/....
除此之外,它完美无缺。
当我路由到 mydomain/(entry1|entry2|entry3)/some/resource 它服务于 (entry1|entry2|entry3)/index.html
当我路由到 mydomain/some/other/path 它提供 entry3/index.html
【问题讨论】:
标签: nginx