我需要在我的应用程序中支持旧路径,但我想将用户重定向到新的正确路径。例如,我有以下传统路径:
/legacyRoute/subRoute
,/legacyRoute/anotherSubRoute
我想要将这两个重定向到:
/newRoute
我在Angular docs中找到了pathMatch选项prefix
,但我将路线设置为:
{path: 'legacyRoute', redirectTo: 'newRoute', pathMatch: 'prefix' }
会产生类似于/newRoute/subRoute
这不是一个大问题,页面仍然像我期望的那样加载,但它仍困扰着我。是否存在基于前缀重定向的Angular方式并删除任何不匹配的内容?此外,如果我可以保留我的查询字符串参数,那就太好了。
答案 0 :(得分:2)
Dangit,发布后立即找到解决方案。您可以指定一个子路由,而不是像这样做任何事情:
{path: 'legacyRoute/:subRoute', redirectTo: 'newRoute', pathMatch: 'prefix' }
这将导致:
legacyRoute/whatever?blah=blah
- > newRoute?blah=blah