我不确定这是否可以在代码中实现,或者是否需要在ISS中应用此规则。
基本上我有三个域:
domain1.co.uk > redirects to .com
domain1.com > Primary domain registered with SSL
domain1.ie > I want to redirect this to .com based on SSL request
我已将MVC应用配置为根据域显示相对内容。因此,如果请求来自.ie地址,那么我可以显示相关的内容/元数据等。但我的问题是,当我在HTTPS下访问/帐户/登录时,我得到一个SSL错误,因为证书是在。 com域名。
我真的想保留HTTP静态网站的.ie绑定并在Google上对其进行索引,但只要用户尝试导航到HTTPS,我就会切换到.com域名。
我很感激我可以通过改变整个网站的链接来做到这一点,我也尝试了以下但无济于事:
protected void Application_BeginRequest()
{
if(Context.Request.IsSecureConnection && Context.Request.Url.ToString().Contains("domain1.ie"))
Response.Redirect(Context.Request.Url.ToString().Replace("domain1.ie", "domain1.com"));
}
有人可以帮忙吗?
答案 0 :(得分:0)
要允许IIS网络服务器响应不同域的SSL请求,您需要在服务器上启用server name indicator,以允许您使用两个不同的证书来提供SSL内容。
答案 1 :(得分:0)
您可以使用URL Rewriter:
类似的东西:
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="ON" />
</conditions>
<action type="Redirect" url="https://domain1.com/{R:0}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
使用您的共享代码库,您可能希望调整匹配规则,以便仅针对IE启动。
但您需要将服务器配置为在两个站点上使用SSL,方法是使用SAN Certificate或将多个IP绑定到盒子的nic以处理多个https请求。