首页 新闻 会员 周边

.Net5 强制https请求重复跳转问题

0
悬赏园豆:160 [已解决问题] 解决于 2021-01-19 16:13

最近在写.Net5 MVC项目时遇到了个问题 在强制转换https请求后浏览器URL地址栏中显示为正常https请求(可能是浏览器缓存,但是我记得我清除缓存之后访问的) 请求状态码为308(301,302,307都用过) 在Configure中加入自定义中间件打印请求日志发现还是http请求 项目是发布到iis上面的 iis本身的http重定向没有设置过 还望各位指点迷津

app.UseHsts();
var options = new RewriteOptions();
//options.AddRedirectToHttps();
options.AddRedirectToHttpsPermanent();
app.UseRewriter(options);
app.UseHsts();
app.UseHttpsRedirection();
var response = context.HttpContext.Response;
response.StatusCode = 301;
response.Headers[HeaderNames.Location] = newUrl;
context.Result = RuleResult.EndResponse;

上面三种方法都试过了 用第一个和第三个方法把非www请求重定向到www请求是可以正常使用的 还望各位指点迷津 (0_0-)走过路过不要错过 留个思路也行的

WO亦是行人的主页 WO亦是行人 | 初学一级 | 园豆:65
提问于:2021-01-19 09:01
< >
分享
最佳答案
0

最终解决方案

<system.webServer>
      <rewrite>
        <rules>
          <rule name="https" stopProcessing="true">
            <match url="^(.*)$" ignoreCase="false" />
            <conditions logicalGrouping="MatchAll">
              <add input="{HTTP_FROM_HTTPS}" pattern="^on$" negate="true" />
            </conditions>
            <action type="Redirect" url="{要跳转的url}/{R:1}" redirectType="Permanent" />
          </rule>
        </rules>
      </rewrite>
    </system.webServer>
WO亦是行人 | 初学一级 |园豆:65 | 2021-01-19 16:12
其他回答(1)
0

看一下,iis的版本支不支持hsts

https://q.cnblogs.com/q/85129/

这个问题,应该能解决你的问题

收获园豆:160
不知道风往哪儿吹 | 园豆:2035 (老鸟四级) | 2021-01-19 09:22

我用了 https://www.hanselman.com/blog/how-to-enable-http-strict-transport-security-hsts-in-iis7 这里面的方法 发现连程序都进不去了 直接就在iis中重复跳转了 应该是iis配置的有问题

支持(0) 反对(0) WO亦是行人 | 园豆:65 (初学一级) | 2021-01-19 11:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册