使用 IIS 管理器重写 IIS

使用 IIS 管理器重写 IIS

你好,我尝试使用托管服务提供商提供的 IIS 管理器凭据进行正确的 IIS 重写。我没有这方面的经验,而且到目前为止我在网上读到的文章也没有太大帮助。

场景如下:我有一个 ASP.net MVC 5 网站(reallylongmaindomain.com(为方便阅读)的物理域名,其中已上传文件。它使用 SSL 证书进行保护。我们分发的文献有一个较短的域名(不是 URL 缩短的域名),我们将其称为shortdomain.com, 哪个才不是没有任何文件。但是,如果您导航到shortdomain.com,您会收到 SSL 域名不匹配错误(准确地说是 ERR_CERT_COMMON_NAME_INVALID)。这是我需要避免的。

进入 IIS 管理器。我已成功登录系统并添加了 URL 重写。这是我的规则:(http(s)?://)?(www.)?shortdomain.com.这处理任何http/https和/或www用户可以在地址栏中输入。操作属性设置为“重定向”(永久 301),重定向 URL 设置为https://reallylongmaindomain.com,但我仍然收到 SSL 证书错误,并且窗口中的 URL 仍然shortdomain.com

我确信我只是忽略了一两件简单的事情。我是否还需要将规则添加到我的 Web.Config 文件中?我的印象是 IIS 管理器规则取代了 Web.Config 规则。 编辑:该规则已添加到我的 web.config 中,如下所示:

    <rewrite>
        <rules>
            <rule name="site redirect" stopProcessing="true">
                <match url="(http(s)?://)?(www.)?shortdomain.com" />
                <action type="Redirect" url="https://reallylongmaindomain.com" />
            </rule>
        </rules>
    </rewrite>

谢谢!

答案1

事实证明这就是我所寻找的规则:

<rewrite>
    <rule name="redirect" stopProcessing="true">
        <match url=".*" />
        <conditions>
            <add input="{HTTP_HOST}" pattern="^(.*)?shortdomain.com" />                 
        </conditions>
        <action type="Redirect" url="https://reallylongmaindomain.com/{R:0}" />
    </rule>
</rewrite>

应用此规则后,导航至shortdomain.com完美地解决了https://reallylongmaindomain.com

希望这可以帮助别人!

相关内容