你好,我尝试使用托管服务提供商提供的 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
。
希望这可以帮助别人!