IIS7: HTTP->HTTPS 清洁地转换

6 浏览
0 Comments

IIS7: HTTP->HTTPS 清洁地转换

是否有一种简洁的方法将所有对网站的HTTP://版本的访问重定向到其HTTPS://等效版本?

0
0 Comments

问题的出现原因:在IIS7中使用javascript进行HTTP到HTTPS的重定向时,可能会遇到一些问题。如果IE浏览器启用了“显示友好的HTTP错误消息”,则无法运行javascript。此外,javascript重定向到指定路径时可能无法正常工作。

解决方法:可以使用经典ASP页面进行重定向。但是,这需要在服务器上启用经典ASP功能。在IIS7中,将ASP文件放在站点的根文件夹中,并在403.4错误页面中引用该文件。同时,需要注意的是,不能对SSLRedirect.asp文件启用SSL强制。为了实现这一点,可以在IIS7的“内容视图”中选择该文件,并切换到“特性视图”,然后取消“要求SSL”复选框的选中状态。

在IIS 7.5或R2版本中,以上方法可能无法正常工作。可以尝试使用URL Rewrite 2.0方法进行重定向。

0
0 Comments

问题出现的原因:为了将HTTP请求重定向到HTTPS,需要在IIS的SSL设置中启用“要求SSL”。然后,在错误页面中设置当出现403.4错误时重定向到HTTPS站点。

解决方法:在IIS的SSL设置中启用“要求SSL”。然后,在错误页面中设置当出现403.4错误时重定向到HTTPS站点。最后,在错误页面中编辑功能设置,对于本地请求设置详细错误,对于远程请求设置自定义错误页面。

好处是不需要额外的代码。缺点是它将重定向到一个绝对URL。这可能会导致一些路径信息丢失,打破现有的带有额外路径信息的链接。

0
0 Comments

在IIS7中,将HTTP重定向到HTTPS的最干净的方法是使用web.config文件。这种方法不需要记住通过403.4自定义错误页面或其他特殊权限所经历的所有步骤,只需要简单地工作。

解决方法如下:


  
    
      
        
          
          
            
          
          
        
      
    
  

这个方法是完美的,并且是完全自包含的,因此您不需要按照接受的答案中概述的方式创建一个新的网站。

这个方法会对所有URL进行重定向,无论文件类型如何,例如直接访问一个txt文件的URL。

对我来说,这个方法也有效,但是我需要修改重定向URL为https://{HTTP_HOST}{REQUEST_URI}。

对我来说,这个方法也有效。我必须添加我正在运行的应用程序:localhost/app1 => http://{HTTP_HOST}/app1/{R:1}。

对于那些还没有rewrite部分的人,请将规则放在web.config的以下部分:...

请确保在IIS服务器上安装了Microsoft URL Rewrite Module。

出于SEO原因,您应该使用redirectType="Permanent"。请参阅support.google.com/webmasters/answer/...

这个方法对于我在IIS 8上不起作用,在Chrome中会导致ERR_TOO_MANY_REDIRECTS错误。

上面的重写规则解决了我的问题,但是在此之前,我必须先进入IIS中的SSL设置,并取消选中“要求SSL”(即使只有“忽略”被选中)。

需要在443和80端口上都进行IIS绑定。

请将这些规则放在网站根目录的Web.config文件中。

0