Iis 将Azure网站上的URL重写到其他服务器

Iis 将Azure网站上的URL重写到其他服务器,iis,azure,ember.js,url-rewriting,Iis,Azure,Ember.js,Url Rewriting,我有一个Ember应用程序,它使用CORS访问不同子域上的API。 由于IE8和IE9没有完全的CORS支持,我需要创建一个代理来访问API Ember应用程序部署在Azure网站上,API是Web角色。我曾尝试使用URL重写创建代理,但我只得到一个404未找到 我想要以下行为 改写为 URL重写如下所示 <rule name="Rewrite to APIs" stopProcessing="true"> <match url="^rewrite/([^/]*)/

我有一个Ember应用程序,它使用CORS访问不同子域上的API。 由于IE8和IE9没有完全的CORS支持,我需要创建一个代理来访问API

Ember应用程序部署在Azure网站上,API是Web角色。我曾尝试使用URL重写创建代理,但我只得到一个404未找到

我想要以下行为

改写为

URL重写如下所示

<rule name="Rewrite to APIs" stopProcessing="true">
    <match url="^rewrite/([^/]*)/([^/]*)/(.*)" />
    <action type="Rewrite" url="https://{R:1}-{R:2}.cloudstorez.com/{R:3}" />
</rule>

如果我改为做一个相应的重定向,它工作得很好

<rule name="Redirect to APIs" stopProcessing="true">
    <match url="^redirect/([^/]*)/([^/]*)/(.*)" />
    <action type="Redirect" url="https://{R:1}-{R:2}.cloudstorez.com/{R:3}" />
</rule>


“我的重写”中是否有错误,或者Azure网站在URL重写或访问其他服务器方面是否有限制?

重写外部URL称为反向代理。此功能通过ARR+Url重写的组合实现。这是IIS的两个独立模块

Azure网站上默认情况下未启用反向代理。但有一个诀窍可以实现它。来自IIS团队(或前IIS团队)的Ruslan Y.在上写了一篇博客文章


注意-我还没有亲自测试过这个技巧,所以不能说它是否仍然有效(自从Ruslan的博客以来,Azure网站有了很大的发展,这个功能可能已经被禁用),但仍然值得一试。

我刚刚尝试过这个技巧,截至今天(2016年6月),它仍然有效。谢谢