是否可以在云中部署 Web 应用程序并对其进行配置,使其看起来像公司 URL 中的子文件夹。例如
www.mycompany.com //main company web site
www.mycompany.com/products // hits a web application in the cloud (azure for example)
谢谢
我不是 DNS 专家,但我认为您会发现将 products.mycompany.com 路由到您的 Windows Azure 网站比使用子文件夹更直接。
考虑到使用子域和 CNAME 更容易,我认为您正在寻找的是IIS URL Rewrite 模块。以下基本规则取自此 IIS 论坛的主题,描述了类似的情况并给出了示例规则。您可以将它们用作基础:
<system.webServer>
<rewrite>
<rules>
<rule name="CanonicalHostNameRule">
<match url="(.+)/(.*)" />
<conditions>
<add input="{HostToRedirect:{HTTP_HOST}/{R:1}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="http://{C:1}/{R:2}" />
</rule>
</rules>
<rewriteMaps>
<rewriteMap name="HostToRedirect">
<add key="domain.com/mail" value="mail.domain.com" />
<add key="domain.net/mail" value="mail.domain.net" />
</rewriteMap>
</rewriteMaps>
</rewrite>
</system.webServer>
您也可以查看这个 SO question,因为它提供了一些关于您要解决的问题的指南。
更新解决方案
这完全可以通过IIS的 URL 重写模块和ARR 模块来实现。然后您需要设置一个反向代理规则,它将所有 /products 请求重写到云中相应的 Web 应用程序。您的规则将如下所示:
<system.webServer>
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" patternSyntax="ECMAScript" stopProcessing="true">
<match url="(^products)" />
<conditions>
<add input="{CACHE_URL}" pattern="^(https?)://" />
</conditions>
<action type="Rewrite" url="{C:1}://myvompany.cloudapp.net/" />
</rule>
</rules>
</rewrite>
</system.webServer>
您可以稍后对其进行调整以满足您的确切需求,但是通过上面的示例,我刚刚实现了您正在寻找的东西。
我也喜欢 David 关于将其设为网站并使用 cname 映射 products.mycompany.com 的回答
你可以两者都做。将 www.mycompany.com/products 重定向到 products.mycompany.com