我有两个申请。其中之一是处理一系列产品的身份验证。因此,我想从每个网站重写一个URL到我们的“身份验证”项目。它看起来像这样。
http://www.mywebsite.com/api/profile/login - > http://www.myauthentication.com/api/profile/login。
所以基本上推动请求跨域。
为此,我在IIS中设置了ARR和URL重写。但是我似乎无法让它工作,我感觉URL重写没有运行通常会导致404的请求。我认为这是因为在REDIRECT请求(301重定向),配置工作完美。当我使用重写时,我得到一个通用的404页面。
规则配置如下所示:
<rules>
<rule name="Route the requests for the Profile API." enabled="true" stopProcessing="true">
<match url="^profiles/(.*)" />
<action type="Rewrite" url="http://authentication.local/api/profiles/{R:1}" logRewrittenUrl="true" />
</rule>
</rules>
应该注意的是,我使用的是WebAPI,而不是MVC,我不确定这是否会导致问题。因为重定向有效而不是重写,我确信我已经在IIS中安装了所有内容。
对于ARR,我只是勾选了“启用代理”,但我不确定是否需要执行其他操作。
答案 0 :(得分:1)
我设法通过为ARR添加忽略路由来解决这个问题。
RouteTable.Routes.IgnoreRoute("api/profiles/{*pathInfo}");