首页 > 解决方案 > 为什么 IIS 重写为 HTTPS 会导致 301 错误循环?

问题描述

web.config我的 Asp.net MVC 网站中有以下规则。

当我启用此规则时,它会导致 301 错误循环!

<rule name="Redirect to https" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
    <match url="*" negate="false" />
    <conditions logicalGrouping="MatchAny">
            <add input="{HTTPS}" pattern="OFF" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
 </rule>

without https使用 CURL测试网站 url :

在此处输入图像描述

笔记

你怎么看这个问题?问题出在哪里?

标签: asp.net-mvciisurl-rewritingiis-8

解决方案


尝试这个 :

          public class SSLFilter : ActionFilterAttribute {

          public override void OnActionExecuting(ActionExecutingContext filterContext){
    if (!filterContext.HttpContext.Request.IsSecureConnection){
        var url = filterContext.HttpContext.Request.Url.ToString().Replace("http:", "https:");
        filterContext.Result = new RedirectResult(url);
    }
}

}


推荐阅读