IIS重写(HTTP到HTTPS)与子域

问题描述:

我发现并试图杰夫的规则发现here但我无法得到它的工作完全正确:IIS重写(HTTP到HTTPS)与子域

我需要的是有http://a.b.comhttps://a.b.com(其中一个是不是www,但是这种区别不应该真正影响规则,它应该吗?www只是另一个子域,对吗?)

Where Jeff。(。*)billing /(.*),用(。* ),但那不起作用。

我试图产生“重定向循环”错误的结果。

这个重写的东西对我来说是新的。

感谢您的帮助。

不是你正在问的答案,但是如果你有机会在ASP.net页面上使用它,你可以打开你的Global.ASPX文件,并在“Application_BeginRequest”页面中输入:

Dim url As New System.UriBuilder(Context.Request.Url) 

    'Do our redirect if we need 
    If Context.Request.IsSecureConnection = False Then 

     url.Scheme = "https" 
     url.Port = -1 
     System.Web.HttpContext.Current.Response.Redirect(url.Uri.ToString()) 

    End If 
+0

这里是一个链接,我发现使用重写除IIS7。还没有尝试过: http://www.iis-aid.com/articles/how_to_guides/redirect_http_to_https_iis_7 – 2010-11-05 17:09:32

+0

是的,它是ASP.NET。我会举一个例子。我试图摆脱使用代码并尝试新的重写“技巧”。谢谢。 – Marc 2010-11-05 17:10:05

+0

@Marc,如果使用HTTPS的目的是为了提供某种安全性,你应该避免重定向或重写技巧。 – Bruno 2010-11-05 17:12:20

而不是使用重定向,你应该确保你的应用程序(即发送到http://a.b.com/发送到https://a.b.com/直接),否则,同样的请求将投奔纯HTTP重定向到HTTPS,这违背了前点。

(这this other question了解更多信息。)

+0

我们的代码重定向指向https,但我试图解决用户直接在网址中输入内容并且不知道输入https的问题。所以在登陆时,他们进入http://a.b.com,并且他们被发送到https ...类似于gmail,例如。感谢您的意见。 – Marc 2010-11-05 17:16:39

+1

@Marc,我真的会强迫它破坏,正是为了找出编码错误的时间(尽管它不会阻止事件发生)。如果有人输入了“http://a.b.com/page/1”?有些人会错误地将它们发送到'https:// a.b.com'(你可以更容易地找出错误的位置)。更好的方法是将'http:// abcom'作为入口点,使用不同的IP地址重定向到'https:// secure.b.com',并且不在端口80上进行侦听,这样'http: // secure.b.com'总是会失败(尽管有人仍然可以欺骗请求使其有效)。 – Bruno 2010-11-05 17:23:06