我在 IIS 7.5 上运行一些网站,使用一个 UCC SSL 证书,其中 10 个域名是安全的。其中大多数是something.company.ch
,有些是something.anothercompany.ch
我们的 web.config 中有一个重定向规则,它将每个 HTTP 请求重定向到 HTTPS 请求
我的问题是,我们拥有 company.de、company.com 等域名,这些域名不受 SSL 证书保护,但这些域名实际上指向我的 company.ch 网站(IIS 中的网站绑定)。
如果有人现在打开 URL www.company.de,他就会收到证书错误。
为了获得最佳的谷歌排名,你应该在 web.config 中进行 HTTPS 重定向,所以我们认为我们需要这样做。所以我们正在尝试重定向http://www.company.de首先http://company.ch然后https://www.company.ch但不幸的是,这并不能解决问题。
有人知道如何解决这个问题吗?或者有更好的方法吗?
这是web.config
规则部分
# Redirect of company.de to company.ch
<rule name="company.de to company.ch" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="^company.de$" />
</conditions>
<action type="Redirect" url="https://www.company.ch/{R:0}" />
</rule>
# Redirect everything to HTTPS
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>
答案1
两件事情:
- 顶部的重定向仍然使用 https 而不是 http。
- HTTP_HOST 条件将严格匹配 company.de,而不是 www.company.de 之类的主机。虽然我的正则表达式可能错误(在手机上输入会导致拼写错误),但正则表达式应该类似于
^(.*\.)?something.de$