每当有人通过HTTP协议发出请求时,我都会重写网址以使其成为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错误500.50 - URL重写模块错误。表达式
"https://abc.com/{R:1}"
无法扩展。
我该如何解决这个问题?我完全糊涂了。
答案 0 :(得分:17)
比赛基于零。
<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>
答案 1 :(得分:-1)
您可以通过网络配置重定向到 希望它会有所帮助
<rule name="Redirect to WWW" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^abc.com$" />
</conditions>
<action type="Redirect" url="http://www.abc.com/{R:0}" redirectType="Permanent" />
</rule>