我有一个角度应用程序,我目前在IIS上托管,它使用推送状态路由。我已经为IIS配置了url重写模块,其中包含web.config,它将所有请求重定向到索引,以便在服务器上部署时可以正常工作。这是我的web.config:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Angular2Html5Routing" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
这一切都很好,我可以手动输入网址而不会收到任何404错误。但是,如果输入的路由不是我的任何路由模块配置的一部分,我试图实现捕获所有显示/ login路由的路由。以下是我定义的所有路线:
const appRoutes: Routes = [
{ path: '**', redirectTo: 'login', pathMatch: 'full' }
];
当我在本地提供应用程序时这很好用但是当我将它部署到服务器时,url重写似乎被破坏了 - 所有内容,包括应用程序中的有效路由现在都被定向回登录页面。
之前是否有人遇到此问题并设法同时获取网址重写和默认路由?
干杯