gpt4 book ai didi

iis-7 - Angular SPA + WebApi 的 IIS Url 重写规则

转载 作者:行者123 更新时间:2023-12-04 22:45:43 25 4
gpt4 key购买 nike

我有一个 SPA + WebAPI 应用程序,它们都在同一个项目中。我只希望 WebAPI 应用程序处理来自目录“api”的请求。因此 api 下的任何内容都将由服务器处理,其他所有内容将由 Angular SPA 处理。

我目前有

   <rewrite>
<rules>
<rule name="AngularJS" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>

这工作正常,除非我转到 URL
http://localhost/customers/2 (它加载了文档,但所有资源都以错误的 MIME 类型进入,因为上面的重定向规则,我得出结论)

网址 http://localhost/customers工作正常将被我的 SPA 应用程序路由

除了 API 目录下的请求之外,如何将所有内容重定向到我的 SPA?

最佳答案

我用两条规则来做到这一点。一个将我想去asp.net的服务器端 Controller “列入白名单”,其中包括/api以及/Account和/Manage下的身份验证内容。下一个将所有其他内容发送到 angular,除非它是一个文件或文件夹,就像你已经拥有的一样。

    <rule name="API Rule" stopProcessing="true">
<match url="^(api|account|manage)(.*)$" />
<action type="None" />
</rule>
<rule name="Angular Rule" 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>

以这种方式尝试,但如果您不希望这些请求进入服务器,请随意删除“|account|manage”。

要查看我的整个规则集,请查看 this question我已经发布了,在那里我也处理 HTTPS 和规范主机名。

关于iis-7 - Angular SPA + WebApi 的 IIS Url 重写规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27414235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com