Angular 5 在 URL ( IIS 8.5) 使用 DNS shortName 时重写规则
Angular 5 rewrite rule when using DNS shortName for URL ( IIS 8.5)
我正在使用短名称(DNS 条目)来映射我的 angular 5 应用程序 URL。
应用程序托管在 IIS 中,如下图所示,
我已将应用程序的路径映射到一个名为 "arcm" 的短名称。
所以那一刻,我在浏览器地址栏中输入这个短名称,我看到了我的默认路由。
但问题是,
如果我在任何路线上刷新它,我都会看到 404 错误。
以下是我的 web.config 文件和重写规则,
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="AngularJS" stopProcessing="true">
<match url="arcm/" />
<action type="Rewrite" url="http://arcm/" appendQueryString="false"/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
以下更改解决了我的问题,
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="Http Redirection" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" negate="false" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP}" pattern="off" />
</conditions>
<action type="Redirect" url="http://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" />
</rule>
<rule name="AngularJS" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{URL}" negate="true" pattern="\.axd$" />
<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>
</configuration>
我正在使用短名称(DNS 条目)来映射我的 angular 5 应用程序 URL。 应用程序托管在 IIS 中,如下图所示, 我已将应用程序的路径映射到一个名为 "arcm" 的短名称。 所以那一刻,我在浏览器地址栏中输入这个短名称,我看到了我的默认路由。
但问题是, 如果我在任何路线上刷新它,我都会看到 404 错误。 以下是我的 web.config 文件和重写规则,
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="AngularJS" stopProcessing="true">
<match url="arcm/" />
<action type="Rewrite" url="http://arcm/" appendQueryString="false"/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
以下更改解决了我的问题,
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="Http Redirection" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" negate="false" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP}" pattern="off" />
</conditions>
<action type="Redirect" url="http://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" />
</rule>
<rule name="AngularJS" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{URL}" negate="true" pattern="\.axd$" />
<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>
</configuration>