从 HTTP 重定向到 HTTPS - IIS 7.5

Posted

技术标签:

【中文标题】从 HTTP 重定向到 HTTPS - IIS 7.5【英文标题】:Redirect from HTTP to HTTPS - IIS 7.5 【发布时间】:2011-09-16 05:15:12 【问题描述】:

我已经在我的应用程序上实现了 https,现在我正试图让 IIS 将所有 http 请求重定向到 https,这样用户甚至都不会注意到这个变化。

我已经更改并尝试了一些 IIS 选项,但没有成功。

我该怎么做?

我使用的是 IIS 7.5 和 ASP.NET 2.0

问候,

【问题讨论】:

【参考方案1】:

blog article 中描述的方法效果很好。

总结: 1) 打开网站的“需要 SSL”设置。

2) 在 403 错误的错误设置配置中,将其设置为“使用 302 重定向响应”,并将新 URL 设置为带有 h​​ttps:// 前缀的完整 URL。@987654324 @

【讨论】:

这是一个非常简单易行的方法。您知道这是否对 SEO 或页面排名有任何影响吗? 403 是在 302 之前抛出还是 IIS 在返回之前对其进行翻译?【参考方案2】:

您可以安装RewriteModule 并按照this page 上的说明进行操作。

【讨论】:

真的需要安装扩展吗? 不,但这是最简单的方法。 Here 其他一些选项。 This 也可能有帮助。 我应该在 web.config 的哪个位置添加 标签? <system.webServer> <rewrite> <rules>,但您可以使用 IIS 管理器来创建规则。【参考方案3】:

您可以在 global.asax 上的 beginRequest 上进行简单检查,类似于以下代码:

protected void Application_BeginRequest(Object sender, EventArgs e)
    
        HttpApplication app = (HttpApplication)sender;

        if(!app.Response.Request.IsSecureConnection)
        
            app.Response.Redirect(Request.RawUrl.Replace("http://","https://"), true);
            return;
        
    

ps。我没有检查这个代码,我现在就输入它。

【讨论】:

+1 这是我们目前使用的示例:void global_asax_BeginRequest(object sender, EventArgs e) HttpApplication app = (HttpApplication)sender; if (!app.Request.Url.AbsoluteUri.StartsWith("https")) app.Response.Redirect(Request.Url.AbsoluteUri.Replace("http://", "https://"), true); 【参考方案4】:

以防万一其他人遇到不会重定向的 http:// 站点。您还必须将端口 80 绑定添加到站点。

【讨论】:

【参考方案5】:

在 IIS 7 中从 HTTP 重定向到 HTTPS

URL Rewrite 与 IIS Manager 紧密集成以便更好地管理(从https://go.microsoft.com/?linkid=9722532 下载)

enter image description here

配置规则设置

匹配网址标签: name= 重定向 2 HTTPS url= (.*)

条件标签:添加记录 输入= HTTPS 模式= ^OFF$

操作标签: type= 重定向 重定向 URL= https://HTTP_HOST/R:1 redirectType=永久

【讨论】:

以上是关于从 HTTP 重定向到 HTTPS - IIS 7.5的主要内容,如果未能解决你的问题,请参考以下文章

IIS 7.5 HTTP 到 HTTPS 重定向

IIS 7.5 HTTP到HTTPS重定向

IIS 7如何实现http重定向https

IIs 8 将 URL 从 http 重定向到 https

IIS 7 上的条件 https 重定向

IIS 7 实现http跳转https 重定向方法