asp.net – 重写规则错误:HTTP错误500.50 – URL重写模块错误.表达式“https://abc.com/{R:1}”无法展开

每当有人通过HTTP协议提出请求,我将重写该URL以使其成为HTTPS.这是web.config中的代码
<rule name="Imported Rule 1-1" enabled="true" stopProcessing="true">
    <match url="^(?!https://).*" ignoreCase="false" />
    <conditions logicalGrouping="MatchAll">
        <add input="{SERVER_PORT}" pattern="80" ignoreCase="false" />
    </conditions>
    <action type="Rewrite" url="https://abc.com/{R:1}" />
</rule>

但是当我浏览http://我收到IIS错误

HTTP Error 500.50 – URL Rewrite Module Error. The expression "https://abc.com/{R:1}" cannot be expanded.

我该如何解决?我完全迷惑了

解决方法

比赛为零.
<action type="Rewrite" url="https://abc.com/{R:1}" />

不行,因为你只有一场比赛.你需要:

<action type="Rewrite" url="https://abc.com/{R:0}" />

此外,这将无法正常工作,因为您只能在站点根目录下的路径上进行匹配.

<match url="^(?!https://).*" ignoreCase="false" />

看起来你正在检查ssl.改为:

<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{HTTPS}" pattern="^OFF$" />
      </conditions>

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...