IIS7:HTTP-> HTTPS Cleanly
我认为最简洁的方式是描述here on IIS-aid.com。它只是web.config,所以如果你改变服务器,你不必记住你通过403.4自定义错误页面或其他特殊权限所经历的所有步骤,它只是工作。
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
这是完美的,对于奖励积分来说,它是完全独立的,因此您不必按照接受的答案中所述创建新网站 – WickyNilliams 2012-06-28 10:42:36
这会针对所有网址触发,而不管文件类型如何。例如一个txt文件的直接URL? – Cheekysoft 2013-08-27 16:27:09
一个干净的方式只改变http - > https的URL方案,并保持一切等价。它应该是服务器端,所以没有浏览器问题。
JPPinto.com的Step-By-Step instructions关于如何完成,除了他们使用JavaScript(HttpRedirect.htm)而不是服务器端重定向。出于某种原因,如果您启用了“显示友好HTTP错误消息”,则默认情况下,我无法使IE运行JavaScript。脚本的另一件事是即使在FF或Chrome中,重定向到路径也不起作用。脚本总是重定向到根。 (也许我错过了一些东西,因为它应该重定向到路径。)
由于这些原因,我使用了ASP页面进行重定向。不利的一面是,这需要在服务器上启用传统的ASP。
OpsanBlog有一个ASP script and instructions,可以很好地与IIS6配合使用。
我在使用IIS7的这个方法时遇到了一些问题。用户界面主要问题,因为IIS7使它很容易错过任何东西。
- 首先,您需要安装ASP作为 Web服务器角色功能。
- 二,使用虚拟目录并没有 按预期在IIS7中工作,我没有 试图调试这个。相反,我将该文件放在网站的根文件夹中,并使用 403.4错误页面中的url'/SSLRedirect.asp'来引用它。
- 最后,最棘手的部分,您不得为SSLRedirect.asp强制执行SSL。否则,你会得到一个403.4错误。为此,请在IIS7的“内容视图”中选择该文件,然后切换到“功能视图”,以便您可以编辑单个文件的SSL设置并禁用“需要SSL”复选框。
IIS管理器应该在标题中显示文件名。
JPPinto.com上的链接指令已更新,以突出显示这不适用于IIS 7.5或R2。他们说,由于更新版本的IIS中的安全性更改,您将会受到锁定违规。他们建议使用URL Rewrite 2.0方法(类似于@toxaq的答案)。 – AussieRob 2016-02-15 04:22:35
最简单,干净的解决方案,我发现是
在SSL设置 - >需要SSL
错误页面 - >在403.4错误 - >重定向到HTTPS网站
在错误页面 - >编辑功能设置... - >设置本地请求的详细错误和远程请求的自定义错误页面
好处是它不需要额外的代码行。 缺点是它会将您重定向到绝对网址。
的Global.asax
protected void Application_BeginRequest()
{
if (!Context.Request.Url.AbsoluteUri.Contains("localhost") && !Context.Request.IsSecureConnection)
Response.Redirect(Context.Request.Url.ToString().Replace("http:", "https:"));
}
的回答能对詹姆斯科瓦奇的博客上找到:http://jameskovacs.com/2007/05/09/how-to-autoredirect-to-a-sslsecured-site- in-iis/ – cpuguru 2011-03-08 19:33:45
如果您在IIS 7和R2上[此处](http://www.jppinto.com/2010/03/automatically-redirect-http-requests-to-https-on-iis7-using- url-rewrite-2-0 /)是一个指南,它的工作原理和最“干净”的 – 2012-09-21 15:37:08