asp.net-mvc - 为什么 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 :
笔记
with https
即使在启用规则时尝试 URL,我也会得到相同的 302 错误循环。- 我在我的网站上使用 Cloudflare SSL
你怎么看这个问题?问题出在哪里?
解决方案
尝试这个 :
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);
}
}
}
推荐阅读
- database - nodejs修改mongodb中的字符串
- node.js - 如何使用 arrayFilters 更新数组中的元素
- php - PHP - 在构建 [Spatie\Cors\Cors] 时不可实例化
- ios - PageviewController 问题中的水平滚动
- java - 这是 Java regexp 实现中的错误吗?
- objective-c - 禁用转换 NSString
- styled-components - 使用 props 基于其他组件创建样式化组件
- jakarta-ee - ServletOutputStream 将额外的字节写入响应
- powershell - 用命令输出填充空对象
- python - 在一系列 x 值上使用 pandas 数据框的 Matplotlib 茎图