如何在 IIS 8 中对子域名进行 urlrewrite

如何在 IIS 8 中对子域名进行 urlrewrite

我在 server2012、IIS8 上有 2 个域

www.abc.com 和 www.xyz.com

mailenable 的工作方式如下:www.xyz.com/mewebmail

我希望用户像这样访问他们的邮件:webmail.abc.com

这意味着我需要将 webmail.abc.com 域名重定向(或 urlrewrite)到 www.xyz.com/mewebmail

我可以重定向它。但访问者会看到他们被重定向了。这是重定向的本质。

我不想让他们看到,我需要重写 url。用户仍然必须认为他们在 www.abc.com 但实际上是在 xyz。

这可能吗?无论我做什么,我都无法成功。网络上没有任何答案可以保留 URL 栏。

请帮助 ?

答案1

在 IIS8 中,可以按照以下步骤操作:

您需要在同一台服务器上的同一个 IIS 站点中托管这两个站点,只需将 www.abc.com 和 www.xyz.com 作为单个站点的绑定即可。

安装IIS URL 重写模块,然后添加一条空白规则,将所有以 webmail.abc.com 作为主机标头的请求重写为 www.xyz.com/mewebmail。web.config 中的部分应类似于以下内容:

<system.webServer>
    <rewrite>
        <rules>
            <rule name="webmail">
                <match url="(.+)" />
                <conditions>
                    <add input="{SERVER_NAME}" pattern="webmail\.abc\.com" />
                </conditions>
                <action type="Rewrite" url="mewebmail/{R:1}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

您只能在单个站点内重写 URL,如果您需要切换站点,则必须使用重定向,用户会在地址栏中注意到这一点。

相关内容