从 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 设置为带有 https:// 前缀的完整 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的主要内容,如果未能解决你的问题,请参考以下文章