本主题创build了一种在运行IIS 7.0的Windows 2008服务器上从HTTPredirect到HTTPS的机制,这在Internet上是一个非常重要的主题。 如何做到这一点真的不是我的问题。 我的问题更多的是解释为什么这不能用Windows 2008 IIS 7.0附带的标准HTTPredirect模块来完成。 相反,还有其他需要更加艰巨的方法。
首先,IIS 6.0方法不需要外部可用的模块,也不需要对web.config或任何types的其他开发工作进行任何额外的修改。 这里概述: http : //blogs.microsoft.co.il/blogs/dorr/archive/2009/01/13/how-to-force-redirection-from-http-to-https-on-iis-6- 0.aspx而且,你可以看到基本的步骤是运行pipe理单元,获取网站上的属性,并做一些修改。 Presto,你有HTTP – > HTTPredirect设置。
现在,在IIS 7.0平台上,这似乎并不简单。 初步search发现以下网站: http ://www.sslshopper.com/iis7-redirect-http-to-https.html其中有两个单独的认可:1.涉及安装单独可用的微软模块 – URL重写模块,然后将XML添加到web.config。 2.自定义错误页面。 …可能还有其他的方法,但这些是基本的方法,第一种方法被列为主要方法。
但是等等… IIS 7.0上存在一个HTTPredirect模块。 那么…为什么我不能使用HTTPredirect模块来做这件事呢?
这真是我的大问题。 我需要知道这一点,因为我的pipe理层将坚持使用HTTPredirect模块,并以类似于IIS 6.0中的方式设置HTTPredirect到HTTPS。
有人可以向我解释清楚,简单,易于理解,我和我的pipe理层都能理解的条款,为什么我需要去获取URL重写模块,并安装在服务器上,并使web.config更改文章build议,而不是简单地使用已经安装在网站上的HTTPredirect模块?
谢谢一堆。
内置HTTPredirect模块的唯一目的是返回300系列的错误代码,告诉浏览器去其他地方。 理论上你可以设置一个301或302发送stream量到HTTPS,但是这需要很多开销,特别是:
与新模块(在IIS 8中是默认模块)相反,它允许您以更具体的方式运行站点规则,并更好地控制stream量路由和转换。
至于你直接修改web.config文件的问题,有一些方法可以解决,但我现在无法find我的源代码。 本质上,您可以将重写configuration存储在网站configuration位置,而不是应用程序级别。
- 机器(machine.config)
- 服务器(ApplicationHost.config)
- 网站
- 应用程序(web.config)