Http 云中的web应用程序,作为主要公司URL的子文件夹

Http 云中的web应用程序,作为主要公司URL的子文件夹,http,azure,dns,cloud,Http,Azure,Dns,Cloud,是否可以在云中部署web应用程序,并对其进行配置,使其看起来像公司URL中的子文件夹。 例如 谢谢我不是DNS专家,但我想你会发现将products.mycompany.com路由到你的Windows Azure网站比子文件夹更简单。考虑到使用子域和CNAME更容易,我想你要找的是。 以下基本规则取自,因为描述了类似的情况,并给出了示例规则。您可以将其用作基础: <system.webServer> <rewrite> <rules>

是否可以在云中部署web应用程序,并对其进行配置,使其看起来像公司URL中的子文件夹。 例如


谢谢

我不是DNS专家,但我想你会发现将products.mycompany.com路由到你的Windows Azure网站比子文件夹更简单。

考虑到使用子域和CNAME更容易,我想你要找的是。 以下基本规则取自,因为描述了类似的情况,并给出了示例规则。您可以将其用作基础:

<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>

,因为它为您试图解决的问题提供了一些指导

使用解决方案更新

这是完全可以实现的结合。然后,您需要设置一个反向代理规则,将所有/产品请求重写到云中相应的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

重定向将发出HTTP 301/302响应,用户将实际处于开启状态,而不是停留在开启状态。通过URL重写,我几乎可以肯定可以达到预期的效果-用户将只处理,而底层请求将被重写为@astaykov OK Redirect是另一个选项。如上所述,我们可以使用cname将products.mycompany.com映射到someservice.cloudapp.net。就像David那样,但不能将cname用于www.mycompany.com/products=>mycomany.cloudapp.net;)我将使用UrlRewrite和ARR,因为我认为这是可以实现的。@astaykov现在已经是第三次了!“可以使用cname将products.mycompany.com映射到someservice.cloudapp.net”如果我支持你的答案,你会让我一个人呆着吗?谢谢!这是否意味着每个请求都首先到达我的服务器,然后被重写,或者客户端是否涉及任何缓存?每个请求都将首先到达您的服务器。然后它将作为反向代理服务器。您可以在反向代理上读取ARR文件,您可以将数据从云应用缓存到代理服务器。至于客户端缓存,客户端永远不会理解数据是从不同的服务器提交的。在服务器端(应用服务器端-cloudapp)上正确配置时,所有客户端缓存功能都将正常应用(即内容缓存-图像/js/css)。
<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>